항상 도움에 감사드립니다.
아래와 같이 수식을 구성했는데요.
if MarketPosition == -1 Then
{
ExitShort("sp1",AtLimit,하단-(상단-하단)*1,"",1,1);
ExitShort("sp2",AtLimit,하단-(상단-하단)*2);
}
if MarketPosition == 1 Then
{
ExitLong("Bp1",AtLimit,상단+(상단-하단)*1,"",1,1)
ExitLong("Bp2",AtLimit,상단+(상단-하단)*2);
}
if TotalTrades > TotalTrades[1] and (IsExitName("bp2",1) or IsExitName("sp2",1)) Then
xcond = true;
MessageLog("xcond %s", xcond);
위의 코드를 실행시켜서
청산이 두번 나눠서 된 후 Bp2가 나오면
xcond 가 true로 바뀌고
messagelog도 true로 나올 거라고 생각했는데요.
그렇게 나오지가 않는데....
이유가 뭔지, 어떻게 하면 xcond를 true로 바꿀 수 있는지 궁금합니다.
도움 부탁드립니다.
-----------------------------------------------------------
참고로
if MarketPosition == -1 Then
{
ExitShort("sp2",AtLimit,하단-(상단-하단)*2);
}
if MarketPosition == 1 Then
{
ExitLong("Bp2",AtLimit,상단+(상단-하단)*2);
}
if TotalTrades > TotalTrades[1] and (IsExitName("bp2",1) or IsExitName("sp2",1)) Then
xcond = true;
MessageLog("xcond %s", xcond);
위와 같이 청산을 나눠서 하지 않고 한번에 하는 코드로 수정하면
xcond는 true로 나오네요..
하지만 저는 맨 위의 코드 처럼
분할 청산 완료 후에
xcond가 true로 바뀔 수 있게 코드를 작성하고 싶어서
도움 요청합니다.
답변 1
예스스탁
예스스탁 답변
2023-09-21 16:20:47
안녕하세요
예스스탁입니다.
1
IsExitName은 분할청산시에 첫청산이름을 리턴합니다.
마지막청산은 LatestExitName(1)로 확인하셔야 합니다.
2
신호의 이름이므로
청산이름을 지정할 때 대소문자를 정확히 지정하셔야 합니다.
3
if TotalTrades > TotalTrades[1] and (LatestExitName(1) == "Bp2" or LatestExitName(1) == "Sp2") Then
xcond = true;
즐거운 하루되세요
> 예스쟁이 님이 쓴 글입니다.
> 제목 : totaltrades 수식 문의
> 항상 도움에 감사드립니다.
아래와 같이 수식을 구성했는데요.
if MarketPosition == -1 Then
{
ExitShort("sp1",AtLimit,하단-(상단-하단)*1,"",1,1);
ExitShort("sp2",AtLimit,하단-(상단-하단)*2);
}
if MarketPosition == 1 Then
{
ExitLong("Bp1",AtLimit,상단+(상단-하단)*1,"",1,1)
ExitLong("Bp2",AtLimit,상단+(상단-하단)*2);
}
if TotalTrades > TotalTrades[1] and (IsExitName("bp2",1) or IsExitName("sp2",1)) Then
xcond = true;
MessageLog("xcond %s", xcond);
위의 코드를 실행시켜서
청산이 두번 나눠서 된 후 Bp2가 나오면
xcond 가 true로 바뀌고
messagelog도 true로 나올 거라고 생각했는데요.
그렇게 나오지가 않는데....
이유가 뭔지, 어떻게 하면 xcond를 true로 바꿀 수 있는지 궁금합니다.
도움 부탁드립니다.
-----------------------------------------------------------
참고로
if MarketPosition == -1 Then
{
ExitShort("sp2",AtLimit,하단-(상단-하단)*2);
}
if MarketPosition == 1 Then
{
ExitLong("Bp2",AtLimit,상단+(상단-하단)*2);
}
if TotalTrades > TotalTrades[1] and (IsExitName("bp2",1) or IsExitName("sp2",1)) Then
xcond = true;
MessageLog("xcond %s", xcond);
위와 같이 청산을 나눠서 하지 않고 한번에 하는 코드로 수정하면
xcond는 true로 나오네요..
하지만 저는 맨 위의 코드 처럼
분할 청산 완료 후에
xcond가 true로 바뀔 수 있게 코드를 작성하고 싶어서
도움 요청합니다.