커뮤니티

지표문의

프로필 이미지
성공예견
2020-04-27 11:46:11
1452
글번호 138379
답변완료

첨부 이미지

1.아래는 다이버전스가 생길때 추세선이 생기는 지표인데 첨부된 그림 1번. 2번.3번 지표는 낮고 지수는 높은데(또는 그반대) 추세선이 안 생겨요. 좀 수정 좀 해주세요 지표는 macd 오실레이터 입니다. Input : shortPeriod(3), longPeriod(8), Period(9); Var : MACDv2(0), MACDsig(0),macdosc(0) ; MACDv2 = MACD(shortPeriod, longPeriod); MACDsig = ema(MACDv2,Period); macdosc = MACDv2-ema(MACDv2,Period); Var : T(0); var : HIV(0),HID(0),HIT(0),HIV1(0),HID1(0),HIT1(0),HI(0),HI1(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),LI(0),LI1(0); var : LPV(0),LPD(0),LPT(0),LPV1(0),LPD1(0),LPT1(0); var : TL1(0),TL2(0),TX1(0),TX2(0),TX3(0); var : TL3(0),TL4(0),TL5(0),i1(0),i2(0); if crossup(macdosc,0) Then { T = 1; HIV = H; HID = sdate; HIT = stime; HI = Index; HIV1 = HIV[1]; HID1 = HID[1]; HIT1 = HIT[1]; HPV = H; HPD = sdate; HPT = stime; HI1 = HI[1]; HPV1 = HPV[1]; HPD1 = HPD[1]; HPT1 = HPT[1]; Condition1 = false; } if CrossDown(macdosc,0) Then { T = -1; LIV = L; LID = sdate; LIT = stime; LI = Index; LIV1 = LIV[1]; LID1 = LID[1]; LIT1 = LIT[1]; LPV = L; LPD = sdate; LPT = stime; LI1 = LI[1]; LPV1 = LPV[1]; LPD1 = LPD[1]; LPT1 = LPT[1]; Condition2 = false; } if T == 1 Then { if H > HIV Then { HIV = macdosc; 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 and HI <= HI1+30 Then { TL1 = TL_New(HPD1,HPT1,HPV1,HPD,HPT,HPV); //TL2 = TL_New_Self(HID1,HIT1,HIV1,HID,HIT,HIV); TL_SetColor(TL1,WHITE); TL_SetColor(TL2,WHITE); //tx1 = Text_New(HPD1,HPT1,HPV1,NumToStr(HPV1,2)); //tx2 = Text_New(HPD,HPT,HPV,NumToStr(HPV,2)); //tx3 = Text_New(HPD,HPT,(HPV1+HPV)/2,NumToStr((HPV1+HPV)/2,2)); Text_SetStyle(tx1,2,1); Text_SetStyle(tx2,2,1); //TL3 = TL_New(HPD1,HPT1,HPV1,sdate,stime,HPV1); //TL4 = TL_New(HPD1,HPT1,HPV,HPD,HPT,HPV); //TL5 = TL_New(HPD1,HPT1,(HPV1+HPV)/2,HPD,HPT,(HPV1+HPV)/2); 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); Text_SetLocation(tx2,HPD,HPT,HPV); Text_SetString(tx2,NumToStr(HPV,2)); i1 = index; } Else { TL_Delete(TL1); TL_Delete(TL2); TL_Delete(TL3); TL_Delete(TL4); TL_Delete(TL5); Text_Delete(tx1); Text_Delete(tx2); } } } if T == -1 Then { if L < LIV Then { LIV = macdosc; 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 and LI <= LI1+30 Then { TL1 = TL_New(LPD1,LPT1,LPV1,LPD,LPT,LPV); //TL2 = TL_New_Self(LID1,LIT1,LIV1,LID,LIT,LIV); TL_SetColor(TL1,WHITE); TL_SetColor(TL2,WHITE); //tx1 = Text_New(LPD1,LPT1,LPV1,NumToStr(LPV1,2)); //tx2 = Text_New(LPD,LPT,LPV,NumToStr(LPV,2)); //tx3 = Text_New(LPD,LPT,(LPV1+LPV)/2,NumToStr((LPV1+LPV)/2,2)); Text_SetStyle(tx1,2,1); Text_SetStyle(tx2,2,1); //TL3 = TL_New(LPD1,LPT1,LPV1,sdate,stime,LPV1); //TL4 = TL_New(LPD1,LPT1,LPV,LPD,LPT,LPV); //TL5 = TL_New(LPD1,LPT1,(LPV1+LPV)/2,LPD,LPT,(LPV1+LPV)/2); 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); Text_SetLocation(tx2,LPD,LPT,LPV); Text_SetString(tx2,NumToStr(LPV,2)); i2 = index; } Else { TL_Delete(TL1); TL_Delete(TL2); TL_Delete(TL3); TL_Delete(TL4); TL_Delete(TL5); Text_Delete(tx1); Text_Delete(tx2); } } } if index > i1 and index <= i1+3 Then { TL_SetEnd(tl3,sdate,stime,TL_GetValue(tl3,sdate,stime)); TL_SetEnd(tl4,sdate,stime,TL_GetValue(tl4,sdate,stime)); TL_SetEnd(tl5,sdate,stime,TL_GetValue(tl5,sdate,stime)); } if index > i2 and index <= i2+3 Then { TL_SetEnd(tl3,sdate,stime,TL_GetValue(tl3,sdate,stime)); TL_SetEnd(tl4,sdate,stime,TL_GetValue(tl4,sdate,stime)); TL_SetEnd(tl5,sdate,stime,TL_GetValue(tl5,sdate,stime)); } #================= if macdosc > 0 then { plot1(macdosc, "MACDOscillator+"); Plot2(0, "MACDOscillator-"); } else { Plot1(0, "MACDOscillator+"); Plot2(macdosc, "MACDOscillator-"); }
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2020-04-28 10:35:42

안녕하세요 예스스탁입니다. 현재 0선위에서 최고가가 직전 0선위에서 최고가 보다 크지만 지표는 작아져야 합니다. 그림에 지정하신 2번은 0이하의 구간으로 고가비교시에는 사용하는 부분이 아닙니다. 1번구간과 3번구간을 비교하게 됩니다. 2번으로 해당 내용을 처리하기에는 기준이 모호하게 되어 수정할 수가 없습니다. 2번 내용을 포함하려면 조건내용에 대한 자세한 방법을 올려주셔야 합니다. 즐거운 하루되세요 > 성공예견 님이 쓴 글입니다. > 제목 : 지표문의 > 1.아래는 다이버전스가 생길때 추세선이 생기는 지표인데 첨부된 그림 1번. 2번.3번 지표는 낮고 지수는 높은데(또는 그반대) 추세선이 안 생겨요. 좀 수정 좀 해주세요 지표는 macd 오실레이터 입니다. Input : shortPeriod(3), longPeriod(8), Period(9); Var : MACDv2(0), MACDsig(0),macdosc(0) ; MACDv2 = MACD(shortPeriod, longPeriod); MACDsig = ema(MACDv2,Period); macdosc = MACDv2-ema(MACDv2,Period); Var : T(0); var : HIV(0),HID(0),HIT(0),HIV1(0),HID1(0),HIT1(0),HI(0),HI1(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),LI(0),LI1(0); var : LPV(0),LPD(0),LPT(0),LPV1(0),LPD1(0),LPT1(0); var : TL1(0),TL2(0),TX1(0),TX2(0),TX3(0); var : TL3(0),TL4(0),TL5(0),i1(0),i2(0); if crossup(macdosc,0) Then { T = 1; HIV = H; HID = sdate; HIT = stime; HI = Index; HIV1 = HIV[1]; HID1 = HID[1]; HIT1 = HIT[1]; HPV = H; HPD = sdate; HPT = stime; HI1 = HI[1]; HPV1 = HPV[1]; HPD1 = HPD[1]; HPT1 = HPT[1]; Condition1 = false; } if CrossDown(macdosc,0) Then { T = -1; LIV = L; LID = sdate; LIT = stime; LI = Index; LIV1 = LIV[1]; LID1 = LID[1]; LIT1 = LIT[1]; LPV = L; LPD = sdate; LPT = stime; LI1 = LI[1]; LPV1 = LPV[1]; LPD1 = LPD[1]; LPT1 = LPT[1]; Condition2 = false; } if T == 1 Then { if H > HIV Then { HIV = macdosc; 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 and HI <= HI1+30 Then { TL1 = TL_New(HPD1,HPT1,HPV1,HPD,HPT,HPV); //TL2 = TL_New_Self(HID1,HIT1,HIV1,HID,HIT,HIV); TL_SetColor(TL1,WHITE); TL_SetColor(TL2,WHITE); //tx1 = Text_New(HPD1,HPT1,HPV1,NumToStr(HPV1,2)); //tx2 = Text_New(HPD,HPT,HPV,NumToStr(HPV,2)); //tx3 = Text_New(HPD,HPT,(HPV1+HPV)/2,NumToStr((HPV1+HPV)/2,2)); Text_SetStyle(tx1,2,1); Text_SetStyle(tx2,2,1); //TL3 = TL_New(HPD1,HPT1,HPV1,sdate,stime,HPV1); //TL4 = TL_New(HPD1,HPT1,HPV,HPD,HPT,HPV); //TL5 = TL_New(HPD1,HPT1,(HPV1+HPV)/2,HPD,HPT,(HPV1+HPV)/2); 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); Text_SetLocation(tx2,HPD,HPT,HPV); Text_SetString(tx2,NumToStr(HPV,2)); i1 = index; } Else { TL_Delete(TL1); TL_Delete(TL2); TL_Delete(TL3); TL_Delete(TL4); TL_Delete(TL5); Text_Delete(tx1); Text_Delete(tx2); } } } if T == -1 Then { if L < LIV Then { LIV = macdosc; 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 and LI <= LI1+30 Then { TL1 = TL_New(LPD1,LPT1,LPV1,LPD,LPT,LPV); //TL2 = TL_New_Self(LID1,LIT1,LIV1,LID,LIT,LIV); TL_SetColor(TL1,WHITE); TL_SetColor(TL2,WHITE); //tx1 = Text_New(LPD1,LPT1,LPV1,NumToStr(LPV1,2)); //tx2 = Text_New(LPD,LPT,LPV,NumToStr(LPV,2)); //tx3 = Text_New(LPD,LPT,(LPV1+LPV)/2,NumToStr((LPV1+LPV)/2,2)); Text_SetStyle(tx1,2,1); Text_SetStyle(tx2,2,1); //TL3 = TL_New(LPD1,LPT1,LPV1,sdate,stime,LPV1); //TL4 = TL_New(LPD1,LPT1,LPV,LPD,LPT,LPV); //TL5 = TL_New(LPD1,LPT1,(LPV1+LPV)/2,LPD,LPT,(LPV1+LPV)/2); 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); Text_SetLocation(tx2,LPD,LPT,LPV); Text_SetString(tx2,NumToStr(LPV,2)); i2 = index; } Else { TL_Delete(TL1); TL_Delete(TL2); TL_Delete(TL3); TL_Delete(TL4); TL_Delete(TL5); Text_Delete(tx1); Text_Delete(tx2); } } } if index > i1 and index <= i1+3 Then { TL_SetEnd(tl3,sdate,stime,TL_GetValue(tl3,sdate,stime)); TL_SetEnd(tl4,sdate,stime,TL_GetValue(tl4,sdate,stime)); TL_SetEnd(tl5,sdate,stime,TL_GetValue(tl5,sdate,stime)); } if index > i2 and index <= i2+3 Then { TL_SetEnd(tl3,sdate,stime,TL_GetValue(tl3,sdate,stime)); TL_SetEnd(tl4,sdate,stime,TL_GetValue(tl4,sdate,stime)); TL_SetEnd(tl5,sdate,stime,TL_GetValue(tl5,sdate,stime)); } #================= if macdosc > 0 then { plot1(macdosc, "MACDOscillator+"); Plot2(0, "MACDOscillator-"); } else { Plot1(0, "MACDOscillator+"); Plot2(macdosc, "MACDOscillator-"); }