항상 감사드립니다.
2번 연속 수익시 100봉을 쉬고 다시 거래를 재개하라는 취지로
&&!(pp1>0 &&pp2>0 && BarsSinceExit(1)<100) 을 진입식에 넣었는데
예컨대 수익이 연속4회가 되면 1,2번 수익이후 100봉, 1,2,3번 수익이후 100봉,1,2,3,4번
수익이후에도 100봉을 쉬고 있습니다.
제 의도는 연속2회 이후에만 100봉을 쉬고, 그 다음번 부터는 진입조건에 맞으면
그냥 진입하되, 또다시 연속2회 수익이면 그때 100봉을 쉬라는 것입니다.
즉 연속4회 수익의 경우 1,2번 수익이후 100봉을 쉬고, 3,4번이후에 다시100봉을 쉬라는
것입니다.
어떻게 수식을 작성해야 하나요. 미리 감사드립니다.
답변 1
예스스탁
예스스탁 답변
2024-09-11 11:30:32
안녕하세요
예스스탁입니다.
input : StartTime(170000),EndTime(050000);
var : Tcond(False),Trade(False),entry(0),PLcnt(0);
IF Endtime > starttime Then
SetStopEndofday(Endtime);
Else
{
if sDate != sDate[1] Then
SetStopEndofday(Endtime);
}
#05시가 되면
if (sdate != sdate[1] and stime >= EndTime) or
(sdate == sdate[1] and stime >= EndTime and stime[1] < EndTime) Then
Tcond = False;
#17시가 되면
if (sdate != sdate[1] and stime >= StartTime) or
(sdate == sdate[1] and stime >= StartTime and stime[1] < StartTime) Then
{
Tcond = true;
Trade = true;
PLcnt = 0;
entry = 0;
IF Endtime <= starttime Then
{
SetStopEndofday(0);
}
}
if (MarketPosition != 0 and MarketPosition != MarketPosition(0)[1]) or
(MarketPosition == MarketPosition[1] and TotalTrades > TotalTrades[1]) Then
entry = entry+1;
#17시~05시 사이
if Tcond == true Then
{
#청산발생
if TotalTrades > TotalTrades[1] then
{
#수익이면 PLcnt값 1증가 수익이 아니면 0으로 초기화
if positionProfit(1) > 0 Then
PLcnt = PLcnt+1;
Else
PLcnt = 0;
#PLcnt가 2이면
if PLcnt == 2 Then
{
#Trade는 False
Trade = False;
#PLcnt는 0으로 초기화
PLcnt = 0;
}
}
#Trade가 False가 되고 직전청산후에 100봉이 경과하면
#Trade 변수는 true
if Trade == False and BarsSinceExit(1) == 100 Then
trade = true;
if Trade == true Then
{
진입수식
}
}
즐거운 하루되세요
> 자마이카 님이 쓴 글입니다.
> 제목 : 연속 수익시 제어하는 방법
> 항상 감사드립니다.
2번 연속 수익시 100봉을 쉬고 다시 거래를 재개하라는 취지로
&&!(pp1>0 &&pp2>0 && BarsSinceExit(1)<100) 을 진입식에 넣었는데
예컨대 수익이 연속4회가 되면 1,2번 수익이후 100봉, 1,2,3번 수익이후 100봉,1,2,3,4번
수익이후에도 100봉을 쉬고 있습니다.
제 의도는 연속2회 이후에만 100봉을 쉬고, 그 다음번 부터는 진입조건에 맞으면
그냥 진입하되, 또다시 연속2회 수익이면 그때 100봉을 쉬라는 것입니다.
즉 연속4회 수익의 경우 1,2번 수익이후 100봉을 쉬고, 3,4번이후에 다시100봉을 쉬라는
것입니다.
어떻게 수식을 작성해야 하나요. 미리 감사드립니다.