커뮤니티

수식수정부탁드립니다

프로필 이미지
회원
2019-10-14 01:35:54
428
글번호 132733
답변완료

첨부 이미지

#,안녕하세요 아래식은 관리자님이 도움주신 식을 응용한 수식입니다,이식을 그림파일 예처럼 약간 수정 하면 좋겠습니다, $,아래수식의 다이버젼스 표기조건 방식을 쌍바닥패턴(양봉시가,음봉종가의+-5틱범위)이거나 쌍고패턴(양봉종가,음봉시가의+-5틱범위)일때만 다이버젼스 조건을 충족하는 표시를 하고 싶습니다. 도움 부탁드립니다. Input : Period(9), signal(9),굵기(1); Var : RSIv(0), RSIS(0),T(0); var : HIV(0),HID(0),HIT(0),HIV1(0),HID1(0),HIT1(0); var : HPV(0),HPD(0),HPT(0),HPV1(0),HPD1(0),HPT1(0); var : LIV(0),LID(0),LIT(0),LIV1(0),LID1(0),LIT1(0); var : LPV(0),LPD(0),LPT(0),LPV1(0),LPD1(0),LPT1(0); var : TL1(0),TL2(0); RSIV = RSI(Period); RSIS = ma(RSIV,signal); if crossup(RSIV,RSIS) Then { T = 1; HIV = RSIV; HID = sdate; HIT = stime; HIV1 = HIV[1]; HID1 = HID[1]; HIT1 = HIT[1]; HPV = L; HPD = sdate; HPT = stime; HPV1 = HPV[1]; HPD1 = HPD[1]; HPT1 = HPT[1]; Condition1 = false; } if CrossDown(RSIV,RSIS) Then { T = -1; LIV = RSIV; LID = sdate; LIT = stime; LIV1 = LIV[1]; LID1 = LID[1]; LIT1 = LIT[1]; LPV = L; LPD = sdate; LPT = stime; LPV1 = LPV[1]; LPD1 = LPD[1]; LPT1 = LPT[1]; Condition2 = false; } if T == 1 Then { if RSIV > HIV Then { HIV = RSIV; HID = sdate; HIT = stime; } if H > HPV Then { HPV = H; HPD = sdate; HPT = stime; } if Condition1 == false and HPV1 > 0 and HPV > HPV1 and HIV < HIV1 Then { TL1 = TL_New(HPD1,HPT1,HPV1,HPD,HPT,HPV); TL2 = TL_New_Self(HID1,HIT1,HIV1,HID,HIT,HIV); TL_SetColor(TL1,BLUE); TL_SetColor(TL2,BLUE); TL_SetSize(TL1,굵기); TL_SetSize(TL2,굵기); PlaySound("C:예스트레이더dataSound1point.wav"); Condition1 = true; } if Condition1 == true then { if HPV > HPV1 and HIV < HIV1 then { TL_SetEnd(TL1,HPD,HPT,HPV); TL_SetEnd(TL2,HID,HIT,HIV); } Else { TL_Delete(TL1); TL_Delete(TL2); } } } if T == -1 Then { if RSIV < LIV Then { LIV = RSIV; LID = sdate; LIT = stime; } if L < LPV Then { LPV = L; LPD = sdate; LPT = stime; } if Condition2 == false and LPV1 > 0 and LPV < LPV1 and LIV > LIV1 Then { TL1 = TL_New(LPD1,LPT1,LPV1,LPD,LPT,LPV); TL2 = TL_New_Self(LID1,LIT1,LIV1,LID,LIT,LIV); TL_SetColor(TL1,RED); TL_SetColor(TL2,RED); TL_SetSize(TL1,굵기); TL_SetSize(TL2,굵기); PlaySound("C:예스트레이더dataSound1point.wav"); Condition2 = true; } if Condition2 == true then { if LPV < LPV1 and LIV > LIV1 then { TL_SetEnd(TL1,LPD,LPT,LPV); TL_SetEnd(TL2,LID,LIT,LIV); } Else { TL_Delete(TL1); TL_Delete(TL2); } } } plot1(RSIV,"푯대",iff(RSIS<RSIV,RED,BLUE)); plot2(RSIS,"푯대2",iff(RSIS>RSIV,BLUE,RED)); PlotBaseLine1(30, "기준선 30"); PlotBaseLine2(70, "기준선 70"); PlotBaseLine3(50); $$,항상 고맙습니다.
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2019-10-14 10:24:04

안녕하세요 예스스탁입니다. 고점은 종가와 시가중 큰값, 저점은 종가와 시가중 작은값을 기준으로 계산하게 변경했습니다. 각 이전값 대비 +-틱이내이면 다이버젼수 표시가 됩니다. Input : Period(9), signal(9),굵기(1); Var : RSIv(0), RSIS(0),T(0); var : HIV(0),HID(0),HIT(0),HIV1(0),HID1(0),HIT1(0); var : HPV(0),HPD(0),HPT(0),HPV1(0),HPD1(0),HPT1(0); var : LIV(0),LID(0),LIT(0),LIV1(0),LID1(0),LIT1(0); var : LPV(0),LPD(0),LPT(0),LPV1(0),LPD1(0),LPT1(0); var : TL1(0),TL2(0); RSIV = RSI(Period); RSIS = ma(RSIV,signal); if crossup(RSIV,RSIS) Then { T = 1; HIV = RSIV; HID = sdate; HIT = stime; HIV1 = HIV[1]; HID1 = HID[1]; HIT1 = HIT[1]; HPV = max(C,O); HPD = sdate; HPT = stime; HPV1 = HPV[1]; HPD1 = HPD[1]; HPT1 = HPT[1]; Condition1 = false; } if CrossDown(RSIV,RSIS) Then { T = -1; LIV = RSIV; LID = sdate; LIT = stime; LIV1 = LIV[1]; LID1 = LID[1]; LIT1 = LIT[1]; LPV = min(C,O); LPD = sdate; LPT = stime; LPV1 = LPV[1]; LPD1 = LPD[1]; LPT1 = LPT[1]; Condition2 = false; } if T == 1 Then { if RSIV > HIV Then { HIV = RSIV; HID = sdate; HIT = stime; } if max(C,O) > HPV Then { HPV = max(C,O); HPD = sdate; HPT = stime; } if Condition1 == false and HPV1 > 0 and abs(HPV-HPV1) <= PriceScale*5 and HIV < HIV1 Then { TL1 = TL_New(HPD1,HPT1,HPV1,HPD,HPT,HPV); TL2 = TL_New_Self(HID1,HIT1,HIV1,HID,HIT,HIV); TL_SetColor(TL1,BLUE); TL_SetColor(TL2,BLUE); TL_SetSize(TL1,굵기); TL_SetSize(TL2,굵기); PlaySound("C:예스트레이더dataSound1point.wav"); Condition1 = true; } if Condition1 == true then { if HPV > HPV1 and HIV < HIV1 then { TL_SetEnd(TL1,HPD,HPT,HPV); TL_SetEnd(TL2,HID,HIT,HIV); } Else { TL_Delete(TL1); TL_Delete(TL2); } } } if T == -1 Then { if RSIV < LIV Then { LIV = RSIV; LID = sdate; LIT = stime; } if L < LPV Then { LPV = min(C,O); LPD = sdate; LPT = stime; } if Condition2 == false and LPV1 > 0 and abs(LPV-LPV1) <= PriceScale*5 and LIV > LIV1 Then { TL1 = TL_New(LPD1,LPT1,LPV1,LPD,LPT,LPV); TL2 = TL_New_Self(LID1,LIT1,LIV1,LID,LIT,LIV); TL_SetColor(TL1,RED); TL_SetColor(TL2,RED); TL_SetSize(TL1,굵기); TL_SetSize(TL2,굵기); PlaySound("C:예스트레이더dataSound1point.wav"); Condition2 = true; } if Condition2 == true then { if LPV < LPV1 and LIV > LIV1 then { TL_SetEnd(TL1,LPD,LPT,LPV); TL_SetEnd(TL2,LID,LIT,LIV); } Else { TL_Delete(TL1); TL_Delete(TL2); } } } plot1(RSIV,"푯대",iff(RSIS<RSIV,RED,BLUE)); plot2(RSIS,"푯대2",iff(RSIS>RSIV,BLUE,RED)); PlotBaseLine1(30, "기준선 30"); PlotBaseLine2(70, "기준선 70"); PlotBaseLine3(50); 즐거운 하루되세요 > 골든키 님이 쓴 글입니다. > 제목 : 수식수정부탁드립니다 > #,안녕하세요 아래식은 관리자님이 도움주신 식을 응용한 수식입니다,이식을 그림파일 예처럼 약간 수정 하면 좋겠습니다, $,아래수식의 다이버젼스 표기조건 방식을 쌍바닥패턴(양봉시가,음봉종가의+-5틱범위)이거나 쌍고패턴(양봉종가,음봉시가의+-5틱범위)일때만 다이버젼스 조건을 충족하는 표시를 하고 싶습니다. 도움 부탁드립니다. Input : Period(9), signal(9),굵기(1); Var : RSIv(0), RSIS(0),T(0); var : HIV(0),HID(0),HIT(0),HIV1(0),HID1(0),HIT1(0); var : HPV(0),HPD(0),HPT(0),HPV1(0),HPD1(0),HPT1(0); var : LIV(0),LID(0),LIT(0),LIV1(0),LID1(0),LIT1(0); var : LPV(0),LPD(0),LPT(0),LPV1(0),LPD1(0),LPT1(0); var : TL1(0),TL2(0); RSIV = RSI(Period); RSIS = ma(RSIV,signal); if crossup(RSIV,RSIS) Then { T = 1; HIV = RSIV; HID = sdate; HIT = stime; HIV1 = HIV[1]; HID1 = HID[1]; HIT1 = HIT[1]; HPV = L; HPD = sdate; HPT = stime; HPV1 = HPV[1]; HPD1 = HPD[1]; HPT1 = HPT[1]; Condition1 = false; } if CrossDown(RSIV,RSIS) Then { T = -1; LIV = RSIV; LID = sdate; LIT = stime; LIV1 = LIV[1]; LID1 = LID[1]; LIT1 = LIT[1]; LPV = L; LPD = sdate; LPT = stime; LPV1 = LPV[1]; LPD1 = LPD[1]; LPT1 = LPT[1]; Condition2 = false; } if T == 1 Then { if RSIV > HIV Then { HIV = RSIV; HID = sdate; HIT = stime; } if H > HPV Then { HPV = H; HPD = sdate; HPT = stime; } if Condition1 == false and HPV1 > 0 and HPV > HPV1 and HIV < HIV1 Then { TL1 = TL_New(HPD1,HPT1,HPV1,HPD,HPT,HPV); TL2 = TL_New_Self(HID1,HIT1,HIV1,HID,HIT,HIV); TL_SetColor(TL1,BLUE); TL_SetColor(TL2,BLUE); TL_SetSize(TL1,굵기); TL_SetSize(TL2,굵기); PlaySound("C:예스트레이더dataSound1point.wav"); Condition1 = true; } if Condition1 == true then { if HPV > HPV1 and HIV < HIV1 then { TL_SetEnd(TL1,HPD,HPT,HPV); TL_SetEnd(TL2,HID,HIT,HIV); } Else { TL_Delete(TL1); TL_Delete(TL2); } } } if T == -1 Then { if RSIV < LIV Then { LIV = RSIV; LID = sdate; LIT = stime; } if L < LPV Then { LPV = L; LPD = sdate; LPT = stime; } if Condition2 == false and LPV1 > 0 and LPV < LPV1 and LIV > LIV1 Then { TL1 = TL_New(LPD1,LPT1,LPV1,LPD,LPT,LPV); TL2 = TL_New_Self(LID1,LIT1,LIV1,LID,LIT,LIV); TL_SetColor(TL1,RED); TL_SetColor(TL2,RED); TL_SetSize(TL1,굵기); TL_SetSize(TL2,굵기); PlaySound("C:예스트레이더dataSound1point.wav"); Condition2 = true; } if Condition2 == true then { if LPV < LPV1 and LIV > LIV1 then { TL_SetEnd(TL1,LPD,LPT,LPV); TL_SetEnd(TL2,LID,LIT,LIV); } Else { TL_Delete(TL1); TL_Delete(TL2); } } } plot1(RSIV,"푯대",iff(RSIS<RSIV,RED,BLUE)); plot2(RSIS,"푯대2",iff(RSIS>RSIV,BLUE,RED)); PlotBaseLine1(30, "기준선 30"); PlotBaseLine2(70, "기준선 70"); PlotBaseLine3(50); $$,항상 고맙습니다.