커뮤니티

수식 문의

프로필 이미지
에구머니
2026-04-17 19:17:25
78
글번호 231664
답변완료

안녕하세요?


if Long then 매수로만 진입.

if Short then 매도로만 진입.


Long 이면:

1) 무포라면, Long으로 바뀐 이후의 제일 높은 값 대비 Lim1*Atrv 저렴한 가격에 리미트로 매수 진입

매수 진입 후 st1 포인트에 손절, 또는 tp1 포인트에 익절.

2) 익절되면 위랑 똑같이 제일 높은 값 대비 Lim1 퍼센트 저렴한 가격에 리미트로 매수 진입

매수 진입 후 st1 퍼센트에 손절, 또는 tp1 퍼센트에 익절.

3) 손절되면 손절된 포인트를 기억했다가 그 값보다 Lim2 퍼센트 저렴한 가격에 리미트로 매수를 한번 더 진입.

매수 진입 후 st1 퍼센트에 손절, 또는 tp1 퍼센트에 익절.

익절이면 위처럼 계속 반복하지만, 이것마저 손절되면 Long 이 Short로 바뀌기 전에는 더이상 진입 안함.

4) 현재 매수로 진입 중인데, Short으로 바뀌면, 일단은 걸어둔 손절이나 익절로 청산되기 전에는 매도 진입 안 함.


Short 이면:

위의 내용과 대칭적으로 매도 진입.


테스트용으로, Long = (5이평 > 20이평);

Short = (5이평 < 20이평);



감사합니다.

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

예스스탁 예스스탁 답변

2026-04-20 13:41:31

안녕하세요 예스스탁입니다. input : P(10),lim1(1),lim2(1),st1(1),tp1(1); var : long(False),short(False),t(0),ATRV(0); var : hh(0),ll(0),b(0),bl(0),s(0),sl(0); var1 = ma(c,5); var2 = ma(c,20); Long = (var1 > var2); Short = (var1 < var2); ATRV = ATR(P); if long == true Then T = 1; if short == true Then T = -1; if T == 1 Then { if T != T[1] Then { hh = h; bl = 0; } Else { if h > hh Then hh = h; } if bl == 0 Then b = hh-(lim1*ATRV); if TotalTrades > TotalTrades[1] and MarketPosition(1) == 1 and IsExitName("StopLoss",1) == true Then { bl = bl+1; b = ExitPrice(1)*(1-lim2/100); } if MarketPosition == 0 and bl < 2 Then Buy("b",AtLimit,b); } if T == -1 Then { if T != T[1] Then { ll = l; sl = 0; } Else { if l < ll Then ll = l; } if sl == 0 Then s = ll+(lim1*ATRV); if TotalTrades > TotalTrades[1] and MarketPosition(1) == -1 and IsExitName("StopLoss",1) == true Then { sl = sl+1; s = ExitPrice(1)*(1+lim2/100); } if MarketPosition == 0 and sl < 2 Then Sell("s",AtLimit,b); } SetStopLoss(st1,PercentStop); SetStopProfittarget(tp1,PercentStop); 즐거운 하루되세요