커뮤니티
수식 문의
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);
즐거운 하루되세요
다음글
이전글