커뮤니티

수식첨가

프로필 이미지
아트정
2025-12-12 09:17:52
77
글번호 228915
답변완료

Inputs : Period(20), Sence(1.2), CC_DN(Yellow); Vars:  VLineUp(0), VLineDn(0), HHighest(0), LLowest(0), JustChanged(FALSE), VLine(0), DBN(0);  Array: Highs[35](0), Lows[35](0), RRange[35](0), UpWave[1](FALSE), DnWave[1](FALSE); var : t(0); If STime == 180000 Then    DBN = 0;     DBN = DBN + 1;        Var1 = Period; Var2 = Var1 - 1; Var3 = Var1 - 2; Var5 = Sence; Var6 = H-L; JustChanged = FALSE; if CurrentBar <= Var2 then begin Highs[CurrentBar] = Close; Lows[CurrentBar] = Close; RRange[CurrentBar] = (H-L) /2; end; if CurrentBar == Var1 then begin if Highs[Var2] >= Highs[Var3] then begin UpWave[1] = TRUE; HHighest = Highs[Var2]; VLineUp = HHighest - (Var5 * MA(Var6,Var2)); #Plot1(VLineUp,"VLineUp"); end; if Highs[Var2] < Highs[Var3] then begin DnWave[1] = TRUE; LLowest = Lows[Var2]; VLineDn = LLowest + (Var5 * MA(Var6,Var2)); #Plot2(VLineDn,"VLineDn"); end;  end; if CurrentBar > Var1 then begin if DnWave[1] and Close > VLineDn then begin  DnWave[1] = FALSE; UpWave[1] = TRUE; JustChanged = TRUE; HHighest = Close; LLowest = 0; end; if UpWave[1] and Close < VLineUp and JustChanged == FALSE then begin UpWave[1] = FALSE; DnWave[1] = TRUE; JustChanged = TRUE; LLowest = Close; HHighest = 0; end; if JustChanged == FALSE then begin if Close > HHighest then     HHighest = Close; else if Close < LLowest then     LLowest = Close;  end; VLineUp = HHighest - (Var5 * MA(Var6,Var2)); VLineDn = LLowest + (Var5 * MA(Var6,Var2)); if UpWave[1] then t = 1; else if DnWave[1] then t = -1; end; if t == 1 and t != t[1] and c > ma(c,10) Then       Buy(); if t == -1 and t != t[1] and c < ma(c,10) Then       Sell(); 안녕하세요 위식에 수정 부탁드립니다 손절 청산후 다음 신호 진입시  청산 가격에서  다음신호시-3틱 하향된 가격으로 매수 진입   ( 예 매수는 손절 청산가 가격이 250이면 진입은 247에 진입)   매도는 +3틱이상(손절 청산가가 250일때 다음신호 스위칭시 253에 진입)  다음신호 스위칭시 청산가가 아닌 +.-3틱 가격으로 주문

시스템
답변 2
프로필 이미지

예스스탁 예스스탁 답변

2025-12-12 14:03:40

안녕하세요 예스스탁입니다. // 정리된 포맷: 원본 로직은 변경하지 않음 Inputs : Period(20), Sence(1.2), CC_DN(Yellow); Vars: VLineUp(0), VLineDn(0), HHighest(0), LLowest(0), JustChanged(FALSE), VLine(0), DBN(0); Array: Highs[35](0), Lows[35](0), RRange[35](0), UpWave[1](FALSE), DnWave[1](FALSE); Var : t(0); If STime == 180000 Then { DBN = 0; } DBN = DBN + 1; Var1 = Period; Var2 = Var1 - 1; Var3 = Var1 - 2; Var5 = Sence; Var6 = H - L; JustChanged = FALSE; if CurrentBar <= Var2 Then { Highs[CurrentBar] = Close; Lows[CurrentBar] = Close; RRange[CurrentBar] = (H - L) / 2; } if CurrentBar == Var1 Then { if Highs[Var2] >= Highs[Var3] Then { UpWave[1] = TRUE; HHighest = Highs[Var2]; VLineUp = HHighest - (Var5 * MA(Var6, Var2)); #Plot1(VLineUp, "VLineUp"); } if Highs[Var2] < Highs[Var3] Then { DnWave[1] = TRUE; LLowest = Lows[Var2]; VLineDn = LLowest + (Var5 * MA(Var6, Var2)); #Plot2(VLineDn, "VLineDn"); } } if CurrentBar > Var1 Then { if DnWave[1] and Close > VLineDn Then { DnWave[1] = FALSE; UpWave[1] = TRUE; JustChanged = TRUE; HHighest = Close; LLowest = 0; } if UpWave[1] and Close < VLineUp and JustChanged == FALSE Then { UpWave[1] = FALSE; DnWave[1] = TRUE; JustChanged = TRUE; LLowest = Close; HHighest = 0; } if JustChanged == FALSE Then { if Close > HHighest Then HHighest = Close; else if Close < LLowest Then LLowest = Close; } VLineUp = HHighest - (Var5 * MA(Var6, Var2)); VLineDn = LLowest + (Var5 * MA(Var6, Var2)); if UpWave[1] Then t = 1; else if DnWave[1] Then t = -1; } Condition1 = MarketPosition == 0 and IsExitName("StopLoss",1) == true; if t == 1 and t != t[1] and C > MA(C, 10) Then { if Condition1 == False or (Condition1 == true and C >= ExitPrice(1)+PriceScale*3) Then Buy(); } if t == -1 and t != t[1] and C < MA(C, 10) Then { if Condition1 == False or (Condition1 == true and C <= ExitPrice(1)-PriceScale*3) Then Sell(); } 즐거운 하루되세요
프로필 이미지

예스스탁 예스스탁 답변

2025-12-12 14:41:27

안녕하세요 예스스탁입니다. 청산가 기준으로 변경해 드립니다. 첫진입은 기존조건으로 진입하고 이후에는 청산후 일정틱수 이상 가격변동이 있을때 진입하게 됩니다. // 정리된 포맷: 원본 로직은 변경하지 않음 Inputs : Period(20), Sence(1.2), CC_DN(Yellow); Vars: VLineUp(0), VLineDn(0), HHighest(0), LLowest(0), JustChanged(FALSE), VLine(0), DBN(0); Array: Highs[35](0), Lows[35](0), RRange[35](0), UpWave[1](FALSE), DnWave[1](FALSE); Var : t(0); If STime == 180000 Then { DBN = 0; } DBN = DBN + 1; Var1 = Period; Var2 = Var1 - 1; Var3 = Var1 - 2; Var5 = Sence; Var6 = H - L; JustChanged = FALSE; if CurrentBar <= Var2 Then { Highs[CurrentBar] = Close; Lows[CurrentBar] = Close; RRange[CurrentBar] = (H - L) / 2; } if CurrentBar == Var1 Then { if Highs[Var2] >= Highs[Var3] Then { UpWave[1] = TRUE; HHighest = Highs[Var2]; VLineUp = HHighest - (Var5 * MA(Var6, Var2)); #Plot1(VLineUp, "VLineUp"); } if Highs[Var2] < Highs[Var3] Then { DnWave[1] = TRUE; LLowest = Lows[Var2]; VLineDn = LLowest + (Var5 * MA(Var6, Var2)); #Plot2(VLineDn, "VLineDn"); } } if CurrentBar > Var1 Then { if DnWave[1] and Close > VLineDn Then { DnWave[1] = FALSE; UpWave[1] = TRUE; JustChanged = TRUE; HHighest = Close; LLowest = 0; } if UpWave[1] and Close < VLineUp and JustChanged == FALSE Then { UpWave[1] = FALSE; DnWave[1] = TRUE; JustChanged = TRUE; LLowest = Close; HHighest = 0; } if JustChanged == FALSE Then { if Close > HHighest Then HHighest = Close; else if Close < LLowest Then LLowest = Close; } VLineUp = HHighest - (Var5 * MA(Var6, Var2)); VLineDn = LLowest + (Var5 * MA(Var6, Var2)); if UpWave[1] Then t = 1; else if DnWave[1] Then t = -1; } var : TT(0),T1(0),entry(0); TT = TotalTrades; if Bdate != Bdate[1] Then T1 = TT[1]; entry = TT-T1+IFF(MarketPosition!=0,1,0); if MarketPosition == 0 and entry == 0 and t == 1 and t != t[1] and C > MA(C, 10) Then { Buy("b1"); } if MarketPosition == 0 and entry == 0 and t == -1 and t != t[1] and C < MA(C, 10) Then { Sell("s1"); } if MarketPosition == 0 and entry > 0 and MarketPosition(1) == -1 and C >= ExitPrice(1)+PriceScale*3 Then { Buy("b2"); } if MarketPosition == 0 and entry > 0 and MarketPosition(1) == 1 and C <= ExitPrice(1)-PriceScale*3 Then { Sell("s2"); } if MarketPosition == 1 and t == -1 and t != t[1] and C < MA(C, 10) Then ExitLong("bx"); if MarketPosition == -1 and t == 1 and t != t[1] and C > MA(C, 10) Then ExitShort("sx"); 즐거운 하루되세요