커뮤니티

totaltrades 수식 문의

프로필 이미지
예스쟁이
2023-09-21 14:08:34
1173
글번호 172635
답변완료
항상 도움에 감사드립니다. 아래와 같이 수식을 구성했는데요. 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로 바뀔 수 있게 코드를 작성하고 싶어서 도움 요청합니다.