커뮤니티

함수요청

프로필 이미지
흰둥이아빠
2022-01-12 13:28:52
868
글번호 155379
답변완료
안녕하세요? 아래의 지표를 연결선물 3분봉에 적용하고 싶습니다. 75023번 74425번 각각 적용하면 원하는 지표로 나옵니다. 문제는 2개의 지표를 같이 적용하면 지표선이 틀어집니다. 나와야 할 지표가 안나오거나 잘못 그려집니다. 한개의 스크립트로 작성 요청드립니다. 감사합니다. =================================================================================== [지표 75023] Input : short(12), long(26), signal(9); Var : MACDv(0), MACDs(0),macdo(0),T(0),HH(0),LL(0); var : d1(0),t1(0),tl1(0),tl2(0); MACDv = MACD(short, long); MACDs = ema(MACDv,signal); macdo = MACDv-MACDs; if Bdate != Bdate[1] Then { d1 = sDate; t1 = sTime; HH = 0; LL = 0; Condition1 = False; } if d1 > 0 Then { if macdo > hh Then hh = macdo; if macdo < ll Then ll = macdo; if Condition1 == False and hh >= ll+0.5 Then { Condition1 = true; var1 = DayHigh; Var2 = DayLow; TL1 = TL_New(d1,t1,var1,NextBarSdate,NextBarStime,var1); TL2 = TL_New(d1,t1,var2,NextBarSdate,NextBarStime,var2); } if Condition1 == true Then { TL_SetEnd(TL1,sDate,sTime,var1); TL_SetEnd(TL2,sDate,sTime,var2); } } [지표 74425] Input : short(12), long(26), signal(9); Var : MACDv(0), MACDs(0),macdo(0),T(0),HV(0),LV(0); var : d1(0),t1(0),tl1(0),tl2(0); MACDv = MACD(short, long); MACDs = ema(MACDv,signal); macdo = MACDv-MACDs; if Bdate != Bdate[1] Then { d1 = sDate; t1 = sTime; T = 0; if MACDO > 0 Then { T = 1; HV = H; LV = L; } if MACDO < 0 Then { T = -1; HV = H; LV = L; } } Else { if ABS(T) < 2 Then { if H > HV Then HV = H; if L < LV Then LV = L; } if T == 1 and CrossUp(MACDO,0) Then { T = 2; var1 = HV; Var2 = LV; TL1 = TL_New(d1,t1,var1,sDate,sTime,var1); TL2 = TL_New(d1,t1,var2,sDate,sTime,var2); } if T == -1 and CrossDown(MACDO,0) Then { T = -2; var1 = HV; Var2 = LV; TL1 = TL_New(d1,t1,var1,sDate,sTime,var1); TL2 = TL_New(d1,t1,var2,sDate,sTime,var2); } if T == 2 or T == -2 Then { TL_SetEnd(TL1,sDate,sTime,var1); TL_SetEnd(TL2,sDate,sTime,var2); } }
지표
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2022-01-12 13:40:51

안녕하세요 예스스탁입니다. 1 식을 합칠경우 겹치는 변수가 있으면 변경하셔야 합니다. 2 같은색의 라인이 겹치면 보이지 않아(빨강,파랑) 색을 구분해 드립니다. 3 Input : short(12), long(26), signal(9); Var : MACDv(0), MACDs(0),macdo(0),HH(0),LL(0); var : d1(0),t1(0),tl1(0),tl2(0); Var : T(0),HV(0),LV(0),tl3(0),tl4(0); MACDv = MACD(short, long); MACDs = ema(MACDv,signal); macdo = MACDv-MACDs; if Bdate != Bdate[1] Then { d1 = sDate; t1 = sTime; HH = 0; LL = 0; Condition1 = False; } if d1 > 0 Then { if macdo > hh Then hh = macdo; if macdo < ll Then ll = macdo; if Condition1 == False and hh >= ll+0.5 Then { Condition1 = true; var1 = DayHigh; Var2 = DayLow; TL1 = TL_New(d1,t1,var1,NextBarSdate,NextBarStime,var1); TL2 = TL_New(d1,t1,var2,NextBarSdate,NextBarStime,var2); TL_SetColor(TL1,RED); TL_SetColor(TL2,RED); } if Condition1 == true Then { TL_SetEnd(TL1,sDate,sTime,var1); TL_SetEnd(TL2,sDate,sTime,var2); } } if Bdate != Bdate[1] Then { d1 = sDate; t1 = sTime; T = 0; if MACDO > 0 Then { T = 1; HV = H; LV = L; } if MACDO < 0 Then { T = -1; HV = H; LV = L; } } Else { if ABS(T) < 2 Then { if H > HV Then HV = H; if L < LV Then LV = L; } if T == 1 and CrossUp(MACDO,0) Then { T = 2; var3 = HV; Var4 = LV; TL3 = TL_New(d1,t1,var3,sDate,sTime,var3); TL4 = TL_New(d1,t1,var4,sDate,sTime,var4); TL_SetColor(TL3,BLUE); TL_SetColor(TL4,BLUE); } if T == -1 and CrossDown(MACDO,0) Then { T = -2; var3 = HV; Var4 = LV; TL3 = TL_New(d1,t1,var3,sDate,sTime,var3); TL4 = TL_New(d1,t1,var4,sDate,sTime,var4); TL_SetColor(TL3,BLUE); TL_SetColor(TL4,BLUE); } if T == 2 or T == -2 Then { TL_SetEnd(TL3,sDate,sTime,var3); TL_SetEnd(TL4,sDate,sTime,var4); } } 즐거운 하루되세요 > 흰둥이아빠 님이 쓴 글입니다. > 제목 : 함수요청 > 안녕하세요? 아래의 지표를 연결선물 3분봉에 적용하고 싶습니다. 75023번 74425번 각각 적용하면 원하는 지표로 나옵니다. 문제는 2개의 지표를 같이 적용하면 지표선이 틀어집니다. 나와야 할 지표가 안나오거나 잘못 그려집니다. 한개의 스크립트로 작성 요청드립니다. 감사합니다. =================================================================================== [지표 75023] Input : short(12), long(26), signal(9); Var : MACDv(0), MACDs(0),macdo(0),T(0),HH(0),LL(0); var : d1(0),t1(0),tl1(0),tl2(0); MACDv = MACD(short, long); MACDs = ema(MACDv,signal); macdo = MACDv-MACDs; if Bdate != Bdate[1] Then { d1 = sDate; t1 = sTime; HH = 0; LL = 0; Condition1 = False; } if d1 > 0 Then { if macdo > hh Then hh = macdo; if macdo < ll Then ll = macdo; if Condition1 == False and hh >= ll+0.5 Then { Condition1 = true; var1 = DayHigh; Var2 = DayLow; TL1 = TL_New(d1,t1,var1,NextBarSdate,NextBarStime,var1); TL2 = TL_New(d1,t1,var2,NextBarSdate,NextBarStime,var2); } if Condition1 == true Then { TL_SetEnd(TL1,sDate,sTime,var1); TL_SetEnd(TL2,sDate,sTime,var2); } } [지표 74425] Input : short(12), long(26), signal(9); Var : MACDv(0), MACDs(0),macdo(0),T(0),HV(0),LV(0); var : d1(0),t1(0),tl1(0),tl2(0); MACDv = MACD(short, long); MACDs = ema(MACDv,signal); macdo = MACDv-MACDs; if Bdate != Bdate[1] Then { d1 = sDate; t1 = sTime; T = 0; if MACDO > 0 Then { T = 1; HV = H; LV = L; } if MACDO < 0 Then { T = -1; HV = H; LV = L; } } Else { if ABS(T) < 2 Then { if H > HV Then HV = H; if L < LV Then LV = L; } if T == 1 and CrossUp(MACDO,0) Then { T = 2; var1 = HV; Var2 = LV; TL1 = TL_New(d1,t1,var1,sDate,sTime,var1); TL2 = TL_New(d1,t1,var2,sDate,sTime,var2); } if T == -1 and CrossDown(MACDO,0) Then { T = -2; var1 = HV; Var2 = LV; TL1 = TL_New(d1,t1,var1,sDate,sTime,var1); TL2 = TL_New(d1,t1,var2,sDate,sTime,var2); } if T == 2 or T == -2 Then { TL_SetEnd(TL1,sDate,sTime,var1); TL_SetEnd(TL2,sDate,sTime,var2); } }