커뮤니티

전력 스위칭시 손절 미적용

프로필 이미지
건곤대
2023-03-31 16:03:51
1381
글번호 167790
답변완료
안녕하세요. 하기와 같이 답변주신대로 잘 활용중이었는데요, 다만, 매도포지션이 매수신호에 의해 청산되고 매수진입되는 경우,(또는 그 반대) 는 원하는 손절과 익절이 발생하지 않음을 확인했습니다. 이런 경우 식을 어떻게 작성해야 할까요? 한봉내에서 매도청산 매수진입되니까 currentcontracts > currentcontracts[1] 부분이 수정되어야 할까요? -------------------------------------- 안녕하세요 예스스탁입니다. 강제청산은 동일진입은 최근 셋팅한 것으로만 모두 적용됩니다. 동일진입의 이름별로는 설정이 되지 않습니다. 피라미딩시 각 진입별로 손절을 하기 위해서는 exitlong함수로 풀어서 작성하셔야 합니다. 만약 동일진입명으로 여러번 피라미딩이 되면 해당 부분은 모두 추적해 해당진입만 청산하게 작성이 가능하지 않습니다. if A조건 Then Buy("A"); if B조건 Then Buy("b"); if MarketPosition == 1 Then { if CurrentContracts > CurrentContracts[1] Then { if LatestEntryName(0) == "A" Then var1 = LatestEntryPrice(0); if LatestEntryName(0) == "B" Then var2 = LatestEntryPrice(0); } if var1 > 0 Then ExitLong("bx1",AtStop,var1*0.98,"A"); if var2 > 0 Then ExitLong("bx2",AtStop,var2*0.97,"B"); } Else { var1 = 0; Var2 = 0; } 즐거운 하루되세요
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2023-04-03 09:30:12

안녕하세요 예스스탁입니다. 매도진입도 있어서 스위칭이 되는 경우이시면 아래와 같이 MarketPosition != MarketPosition[1] 조건을 추가해 주시면 됩니다. if A조건 Then Buy("A"); if B조건 Then Buy("b"); if MarketPosition == 1 Then { if CurrentContracts > CurrentContracts[1] or MarketPosition != MarketPosition[1] Then { if LatestEntryName(0) == "A" Then var1 = LatestEntryPrice(0); if LatestEntryName(0) == "B" Then var2 = LatestEntryPrice(0); } if var1 > 0 Then ExitLong("bx1",AtStop,var1*0.98,"A"); if var2 > 0 Then ExitLong("bx2",AtStop,var2*0.97,"B"); } Else { var1 = 0; Var2 = 0; } 즐거운 하루되세요 > 건곤대 님이 쓴 글입니다. > 제목 : 전력 스위칭시 손절 미적용 > 안녕하세요. 하기와 같이 답변주신대로 잘 활용중이었는데요, 다만, 매도포지션이 매수신호에 의해 청산되고 매수진입되는 경우,(또는 그 반대) 는 원하는 손절과 익절이 발생하지 않음을 확인했습니다. 이런 경우 식을 어떻게 작성해야 할까요? 한봉내에서 매도청산 매수진입되니까 currentcontracts > currentcontracts[1] 부분이 수정되어야 할까요? -------------------------------------- 안녕하세요 예스스탁입니다. 강제청산은 동일진입은 최근 셋팅한 것으로만 모두 적용됩니다. 동일진입의 이름별로는 설정이 되지 않습니다. 피라미딩시 각 진입별로 손절을 하기 위해서는 exitlong함수로 풀어서 작성하셔야 합니다. 만약 동일진입명으로 여러번 피라미딩이 되면 해당 부분은 모두 추적해 해당진입만 청산하게 작성이 가능하지 않습니다. if A조건 Then Buy("A"); if B조건 Then Buy("b"); if MarketPosition == 1 Then { if CurrentContracts > CurrentContracts[1] Then { if LatestEntryName(0) == "A" Then var1 = LatestEntryPrice(0); if LatestEntryName(0) == "B" Then var2 = LatestEntryPrice(0); } if var1 > 0 Then ExitLong("bx1",AtStop,var1*0.98,"A"); if var2 > 0 Then ExitLong("bx2",AtStop,var2*0.97,"B"); } Else { var1 = 0; Var2 = 0; } 즐거운 하루되세요