커뮤니티
수식 문의
2025-12-08 17:42:06
190
글번호 228766
안녕하세요?
데이용 시스템식에서 수식에 의한 청산 규칙 외에도 SetStopLoss, SetStopProfittarget, SetStopTrailing 을 사용합니다.
예컨대, 매수 진입해서 익절이 되었는데, 여전히 매수신호가 유지중이면
SetStopProfittarget으로 익절된 봉에 다시 매수 진입을 하는데,
이걸
한번 익절이나 손절이 되면
다음 신호에나 진입하도록 하고 싶습니다.
즉, 매수로 진입했다가 익절/손절되면
현재 유지되고 있는 매수신호 말고,
새로운 매수/매도신호까지 기다렸다가 진입하기를 원합니다.
테스트용: 5분봉, 코스피200 선물에 적용
1) 09시 20분 ~ 14시30분까지만 진입, 정규장 마감 10분전에 다 청산
2) input: 매매횟수(3);
=> 하루 최대 3번까지만 진입
매수신호 = 5, 20, 60이평이 정배열
매수청산 = 5, 20 이평 데드크로스
매도신호 = 5, 20, 60 이평이 역배열
매도청산 = 5, 20 이평 골드크로스
SetStopLoss(st,PointStop);
SetStopProfittarget(tp,PointStop);
SetStopTrailing(t1,t2,PointStop,0);
감사합니다.
답변 1
예스스탁 예스스탁 답변
2025-12-09 16:02:51
안녕하세요
예스스탁입니다.
input : N(3),st(2),tp(3),tl(1),t2(2);
input : starttime(92000),Endtime(144000),Xtime(152000);
var : Tcond(False),TT(0),T1(0),entry(0);
TT = TotalTrades;
IF Xtime > starttime Then
SetStopEndofday(Xtime);
Else
{
if sDate != sDate[1] Then
SetStopEndofday(Xtime);
}
if (sdate != sDate[1] and sTime >= Endtime) or
(sdate == sDate[1] and sTime >= Endtime and sTime[1] < Endtime) Then
{
Tcond = False;
}
if (sdate != sDate[1] and sTime >= starttime) or
(sdate == sDate[1] and sTime >= starttime and sTime[1] < starttime) Then
{
Tcond = true;
T1 = TT[1];
IF Xtime <= starttime Then
{
SetStopEndofday(0);
}
}
entry = TT-T1+IFF(MarketPosition != 0,1,0);
var1 = ma(C,5);
var2 = ma(C,20);
var3 = ma(C,60);
Condition1 = var1 > var2 and var2 > var3;
Condition2 = var1 < var2 and var2 < var3;
if MarketPosition <= 0 and
Tcond == true and
entry < 3 and
Condition1 == true and Condition1[1] == False Then
Buy("b");
if MarketPosition >= 0 and
Tcond == true and
entry < 3 and
Condition2 == true and Condition2[1] == False Then
Sell("s");
if MarketPosition == 1 and CrossDown(var2,var3) Then
ExitLong("bx");
if MarketPosition == -1 and CrossUp(var2,var3) Then
ExitShort("sx");
SetStopLoss(st,PointStop);
SetStopProfittarget(tp,PointStop);
SetStopTrailing(t1,t2,PointStop,0);
즐거운 하루되세요
이전글