첨부 이미지
그림1
안녕하세요?
하나의 프로그램에 두개의 Sell 전략이 있을경우 S1 S2 청산로직이 다를 경우 문제가 있는것 같네요.
- 예를 들어 Sell 이 S1 S2 두개를 피라미딩으로 진입하게 되면 - 그후 하나가 청산하면 두번째 진입이 청산될때 대부분 S1 청산로직으로 청산됩니다.
S1이 익절하고 청산됬는대 나머지 진입(s2)이 대부분 S1 청산로직으로 청산됩니다.
S2 청산로직으로 청산할수 있나요?
첨부 파일에서 s1 이 청산될때 s-atr 청산명으로 청산되었는데..
s2 가 청산될때 또다시 s-atr 청산으로 청산됬습니다. S2는 S2-ATR 청산명으로 청산되어야 합니다.
청산로직
if IsEntryName("S1") then
{
If Data1(C) > Data1(Lowest(C, BarsSinceEntry+1) + Data1(ATR(NATR)) * ATRStopS) Then ExitShort("S-ATR",AtMarket,def,DEF,TdQ);
}
if IsEntryName("S2") then
{
If Data1(C) > Data1(Lowest(C, BarsSinceEntry+1) + Data1(ATR(NATR2)) * ATRStopS2) Then exitshort("S2-ATR",AtMarket,def,DEF,TdQ);
}
답변 1
예스스탁
예스스탁 답변
2022-09-05 11:32:45
안녕하세요
예스스탁입니다.
각 청산은 진입의 횟수만큼 동작을 합니다.
2번 진입을 하면 각 청산함수도 2번씩 동작할 수 있습니다.
청산함수에 4번째 매개변수가 진입명을 지정하는 옵션입니다.
함수안에 진입명을 지정하면
청산 조건만족시 해당진입명으로 진입이 있을때만
해당진입으로 들어간 수량 전량으로 청산이 됩니다.
if MarketPosition == -1 Then
{
If Data1(C) > Data1(Lowest(C, BarsSinceEntry+1) + Data1(ATR(NATR)) * ATRStopS) Then
ExitShort("S-ATR",AtMarket,def,"S1");
If Data1(C) > Data1(Lowest(C, BarsSinceEntry+1) + Data1(ATR(NATR2)) * ATRStopS2) Then
exitshort("S2-ATR",AtMarket,def,"S2");
}
즐거운 하루되세요
> 대가들의매매 님이 쓴 글입니다.
> 제목 : 피라미딩 청산
> 안녕하세요?
하나의 프로그램에 두개의 Sell 전략이 있을경우 S1 S2 청산로직이 다를 경우 문제가 있는것 같네요.
- 예를 들어 Sell 이 S1 S2 두개를 피라미딩으로 진입하게 되면 - 그후 하나가 청산하면 두번째 진입이 청산될때 대부분 S1 청산로직으로 청산됩니다.
S1이 익절하고 청산됬는대 나머지 진입(s2)이 대부분 S1 청산로직으로 청산됩니다.
S2 청산로직으로 청산할수 있나요?
첨부 파일에서 s1 이 청산될때 s-atr 청산명으로 청산되었는데..
s2 가 청산될때 또다시 s-atr 청산으로 청산됬습니다. S2는 S2-ATR 청산명으로 청산되어야 합니다.
청산로직
if IsEntryName("S1") then
{
If Data1(C) > Data1(Lowest(C, BarsSinceEntry+1) + Data1(ATR(NATR)) * ATRStopS) Then ExitShort("S-ATR",AtMarket,def,DEF,TdQ);
}
if IsEntryName("S2") then
{
If Data1(C) > Data1(Lowest(C, BarsSinceEntry+1) + Data1(ATR(NATR2)) * ATRStopS2) Then exitshort("S2-ATR",AtMarket,def,DEF,TdQ);
}