예스스탁
예스스탁 답변
2025-06-25 15:33:54
안녕하세요
예스스탁입니다
if MarketPosition <= 0 and C > O Then
{
Buy("b",OnClose,Def,2);
}
if MarketPosition == 1 Then
{
ExitLong("bx1",AtLimit,EntryPrice+1,def,1,1);
ExitLong("bx2",AtLimit,EntryPrice+2,def,1,1);
}
if MarketPosition >= 0 and C < O Then
Sell("s",OnClose,Def,2);
if MarketPosition == -1 Then
{
ExitShort("sx1",AtLimit,EntryPrice-1,def,1,1);
ExitShort("sx2",AtLimit,EntryPrice-2,def,1,1);
}
위 식 적용해 보시면
양봉에 매수 후 다음봉에서 1포인트이상 상승해도 청산이 발생하지 않고
음봉에 매도 후 다음봉에서 1포인트이상 하락해도 청산이 발생하지 않습니다.
청산이 발생하지 않는 것은 진입식의 타입과 if MarketPosition == 1 Then와 같은 조건 때문입니다.
진입이 onclose나 atmarket이면 봉완성시 신호가 발생합니다. 봉완성은 다음봉 시가가 수신될 때입니다.
다음봉 시가수신시 완성봉에 조건이 충족하면 신호를 표시하는데
onclose는 완성봉종가에, atmarket은 다음봉시가에 표시합니다.
이렇게 신호가 발생하면 MarketPosition이 1로 변경이 되는데
if문은 봉완성 기준이므로 신호발생봉 다음봉이 완성되어야 if 조건이 충족하게 되고
atlimit 가격조건이 셋팅이 되므로
신호발생봉 다음 다음봉부터 위 청산으로 신호가 발생할 수 있습니다.
그러므로 진입봉과 동시에 셋팅되세 진입 후 첫봉에만 청산하는 내용을 추가하셔야 합니다.
아래식 참고하시기 바랍니다.
if MarketPosition <= 0 and C > O Then
{
Buy("b",OnClose,Def,2);
ExitLong("bx1.",AtLimit,c+1,Def,1,1);
ExitLong("bx2.",AtLimit,c+1,Def,1,1);
}
if MarketPosition == 1 Then
{
ExitLong("bx1",AtLimit,EntryPrice+1,def,1,1);
ExitLong("bx2",AtLimit,EntryPrice+2,def,1,1);
}
if MarketPosition >= 0 and C < O Then
{
Sell("s",OnClose,Def,2);
ExitShort("sx1.",AtLimit,C-1,def,1,1);
ExitShort("sx2.",AtLimit,C-2,def,1,1);
}
if MarketPosition == -1 Then
{
ExitShort("sx1",AtLimit,EntryPrice-1,def,1,1);
ExitShort("sx2",AtLimit,EntryPrice-2,def,1,1);
}
즐거운 하루되세요
> 맘속의행복 님이 쓴 글입니다.
> 제목 : 질문드립니다
> 안녕하세요
청산에 관한 질문이 있어서 글을 올립니다.
저는 "Exitlong"과 "Exitshort"함수에 'Atlimit'를 사용하여 청산식을 짜는데,
문제는 진입이 이루어진 캔들 바로 다음 캔들에서는 청산 시점이 와도 청산을 안하고 진입한 이후 2번째 캔들부터 청산식이 작동합니다.
"SetStopProfittarget"사용하면 그런 현상이 없이 바로 청산이 되는데, "Exitlong"과 "Exitshort"를 사용하면서도 그렇게 할 수 없는지 궁금합니다.
"SetStopProfittarget"사용하면서도 분할청산이 가능한 방법이 있으면 그것도 알려주시면 감사하겠습니다.