이동평균선 돌파 전략을 프로그래밍하였으나 제가 생각한 방식으로 작동하지 않아 문의드립니다.
Input : P1(180), StopLoss(2); //
Var : 이동평균(0);
이동평균 = Ema(C, P1); // 이동평균선 가격
#진입
if C > 이동평균 and O < 이동평균 Then{
Buy("Buy",AtStop,Open);
} // 시가가 이동평균선 아래고 종가가 이동평균선 위이면 그다음 시가에서 매수진입
else if C < 이동평균 and O > 이동평균 Then{
Sell("Sell",AtLimit,Open);
} // 시가가 이동평균선 위이고 종가가 이동평균선 아래면 그다음 시가에서 매도진입
#손실청산
SetStopLoss(2); // 2% 손실 시 청산
#당일청산
SetStopEndofday(1500); // 15시 당일청산
제가 생각한 프로그램 대로라면 가격이 이동평균선 돌파하면 그다음 봉 시가에서 진입해야 하나 돌파가 있지 않았는데 진입하는 등 목표한 대로 동작하지 않습니다.
코드 오류 부분 및 수정 사항 지적 부탁드립니다.
답변 1
예스스탁
예스스탁 답변
2024-02-14 10:12:11
안녕하세요
예스스탁입니다.
1
올려주신 내용은 신호타입을 atmarket을 사용하시면 됩니다.
atmarket이 봉완성시 지정한 조건이 만족하면 다음봉 시가에 신호가 발생하는 타입니다.
2
atstop,atlimit은 봉완성시 가격을 지정하고
지정한 가격이상/이하의 시세가 발생해야만 신호가 발생하는 타입니다.
랭귀지 도움말에서 각 신호타입에 대한 설명을 참고하시기 바랍니다.
3
input : P1(180), StopLoss(2);
Var : 이동평균(0);
이동평균 = Ema(C, P1); // 이동평균선 가격
// 시가가 이동평균선 아래고 종가가 이동평균선 위이면 다음시가 매수진입
if C > 이동평균 and O < 이동평균 Then
{
Buy("Buy",atMarket);
}
// 시가가 이동평균선 위이고 종가가 이동평균선 아래이면 다음시가 매도진입
else if C < 이동평균 and O > 이동평균 Then{
Sell("Sell",AtMarket);
}
#손실청산
SetStopLoss(2); // 2% 손실 시 청산
#당일청산
SetStopEndofday(1500); // 15시 당일청산
즐거운 하루되세요
> yspark93 님이 쓴 글입니다.
> 제목 : 문의드립니다.
> 이동평균선 돌파 전략을 프로그래밍하였으나 제가 생각한 방식으로 작동하지 않아 문의드립니다.
Input : P1(180), StopLoss(2); //
Var : 이동평균(0);
이동평균 = Ema(C, P1); // 이동평균선 가격
#진입
if C > 이동평균 and O < 이동평균 Then{
Buy("Buy",AtStop,Open);
} // 시가가 이동평균선 아래고 종가가 이동평균선 위이면 그다음 시가에서 매수진입
else if C < 이동평균 and O > 이동평균 Then{
Sell("Sell",AtLimit,Open);
} // 시가가 이동평균선 위이고 종가가 이동평균선 아래면 그다음 시가에서 매도진입
#손실청산
SetStopLoss(2); // 2% 손실 시 청산
#당일청산
SetStopEndofday(1500); // 15시 당일청산
제가 생각한 프로그램 대로라면 가격이 이동평균선 돌파하면 그다음 봉 시가에서 진입해야 하나 돌파가 있지 않았는데 진입하는 등 목표한 대로 동작하지 않습니다.
코드 오류 부분 및 수정 사항 지적 부탁드립니다.