커뮤니티

문의드립니다

프로필 이미지
남산
2021-01-20 15:45:28
748
글번호 145663
답변완료
포지션이 없고 조건1의 결과가 참이면 처리1을 조건1가 거짓이면 조건 2으로 조건2의 결과가 참이면 처리2를 조건1,2 모두 거짓이면 처리3을 수행하는 수식을 만들고자 합니다 1. 아래 수식이 작성하였으나 무엇이 정답인지 모르겠습니다 수정하여 주시기 고맙겠습니다 특히 블록 { } 설정방법 및 조건수식을 2번 작성하여야 하나요 if MarketPosition <= 0 Then { if 조건수식1 Then { if 조건수식1 and CurrentContracts < 1 Then buy("매수1",OnClose,def,1); } Else if 조건수식2 Then { if 조건수식2 and CurrentContracts < 1 Then buy("매수2",OnClose,def,1); } Else { if 조건수식3 and CurrentContracts < 1 Then buy("매수3",OnClose,def,1); } } if MarketPosition == 1 Then { if 조건수식4 Then exitlong("청1",OnClose,def,"매수1"); if 조건수식5 Then exitlong("청2",OnClose,def,"매수2"); if 조건수식6 Then exitlong("청3",OnClose,def,"매수3"); ExitLong("bp",atlimit,AvgEntryPrice+PriceScale*익절틱수); ExitLong("bl",AtStop,AvgEntryPrice-PriceScale*손절틱수); }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2021-01-20 15:55:50

안녕하세요 예스스탁입니다. if 조건1 Then { 처리1 } Else if 조건2 Then { 처리2 } Else { 처리3 } 위와 같은 구조로 작성하시면 됩니다. 작성하신 식에 별도로 문제가 없습니다. 중복되는 조건이 있으므로 간략히 하면 아래와 같습니다. CurrentContracts < 1 조건은 무포지션일때만 진입한다는 의미입니다 해당 조건은 그대로 사용했습니다. if MarketPosition <= 0 Then { if 조건수식1 Then { #처리1 if CurrentContracts < 1 Then buy("매수1",OnClose,def,1); } Else if 조건수식2 Then { #처리2 if CurrentContracts < 1 Then buy("매수2",OnClose,def,1); } Else { #처리3 if 조건수식3 and CurrentContracts < 1 Then buy("매수3",OnClose,def,1); } } 즐거운 하루되세요 > 남산 님이 쓴 글입니다. > 제목 : 문의드립니다 > 포지션이 없고 조건1의 결과가 참이면 처리1을 조건1가 거짓이면 조건 2으로 조건2의 결과가 참이면 처리2를 조건1,2 모두 거짓이면 처리3을 수행하는 수식을 만들고자 합니다 1. 아래 수식이 작성하였으나 무엇이 정답인지 모르겠습니다 수정하여 주시기 고맙겠습니다 특히 블록 { } 설정방법 및 조건수식을 2번 작성하여야 하나요 if MarketPosition <= 0 Then { if 조건수식1 Then { if 조건수식1 and CurrentContracts < 1 Then buy("매수1",OnClose,def,1); } Else if 조건수식2 Then { if 조건수식2 and CurrentContracts < 1 Then buy("매수2",OnClose,def,1); } Else { if 조건수식3 and CurrentContracts < 1 Then buy("매수3",OnClose,def,1); } } if MarketPosition == 1 Then { if 조건수식4 Then exitlong("청1",OnClose,def,"매수1"); if 조건수식5 Then exitlong("청2",OnClose,def,"매수2"); if 조건수식6 Then exitlong("청3",OnClose,def,"매수3"); ExitLong("bp",atlimit,AvgEntryPrice+PriceScale*익절틱수); ExitLong("bl",AtStop,AvgEntryPrice-PriceScale*손절틱수); }