커뮤니티

질의

프로필 이미지
블루3
2023-04-06 04:27:10
662
글번호 167948
답변완료
손실이 발생시 시스템을 중단하고 싶은데요? 시스템 중단을 할 수 있는 방법이 어떠한 것이 있는지 궁긍합니다. 1,손실틱수로 시스템 중단 2,손실된 매매횟수로 시스템 중단 (예를 들어 2회 연속 손실시 시스템 중단) 3,손실시 당일 시스템 중단 --당일 시스템 중단 후 시장을 보고 다시 시스템을 돌리면 진입과청산이 안되나요? 4, 시스템 중단이 여러개의 차트창으로 시스템 구현시 각각 적용이 되는지. 한계좌의 통합으로 적용이 되는지 궁금합니다. 수고하세요..
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2023-04-06 11:09:53

안녕하세요 예스스탁입니다. 올리신 내용으로 중단하는 경우도 있지만 일반적으로는 아래와 같은 수식구조로 당일 일정손실이 발생하면 청산하고 당일 더이상 진입을 하지 못하게 하고 다음날부터 다시 신호가 발생하게 작성합니다. Input : 당일손실틱수(100); Var : N1(0),dayPl(0),당일손실(0),Xcond(false); 당일손실 = PriceScale*당일손실틱수; if Bdate != Bdate[1] Then { Xcond = false; N1 = NetProfit; } daypl = NetProfit-N1; if TotalTrades > TotalTrades[1] then { if daypl <= -당일손실 Then Xcond = true; if IsExitName("dbl",1) == true or IsExitName("dsl",1) == true then Xcond = true; } if Xcond == false then { 진입청산로직 } if MarketPosition == 1 then { ExitLong("dbp",atlimit,EntryPrice+((당일수익-daypl)/CurrentContracts)); ExitLong("dbl",AtStop,EntryPrice-((당일손실+daypl)/CurrentContracts)); } if MarketPosition == -1 then { ExitShort("dsp",atlimit,EntryPrice-((당일수익-daypl)/CurrentContracts)); ExitShort("dsl",AtStop,EntryPrice+((당일손실+daypl)/CurrentContracts)); } 올리신 내용이면 차트 전체상 일정손실이면 더이상 진입을 하지 못하게 막는 내용인데 시스템은 차트에 적용되면 차트 첫봉부터 현재봉으로 오면서 계산하고 조건체크해서 신호를 표시하게 됩니다. 사용자분이 차트에 적용하는 순간을 기억해서 해당 시점부터 신호가 발생하는 부분이 아니므로 손실조건 충족시 더이상 진입을 막게 수식을 작성하면 차트 과거봉에 이미 해당 조건이 충족되어 더이상 신호를 발생하지 못합니다. 그러므로 올리신 내용이면 수식에 날짜와 시간을 지정해 지정한 날짜 지정한 시간이후로 진입이 발생하게 작성해서 재적용 할 떄 다시 날짜와 시간을 변경해 지정한 일시 이후에 신호가 발생하게 셋팅하고 다시 적용하셔야 합니다. 1 Input : 손실틱수(100),시작일(20230406),시작시간(90000); Var : Pl(0),손실(0),Xcond(false),Tcond(False); if Bdate >= 시작일 and sTime >= 시작시간 Then Tcond = true; 손실 = PriceScale*손실틱수; pl = NetProfit; if TotalTrades > TotalTrades[1] then { if pl <= -손실 Then Xcond = true; if IsExitName("dbl",1) == true or IsExitName("dsl",1) == true then Xcond = true; } if Tcond == true and Xcond == false then { 진입청산로직 } if MarketPosition == 1 then { ExitLong("dbl",AtStop,EntryPrice-((손실+pl)/CurrentContracts)); } if MarketPosition == -1 then { ExitShort("dsl",AtStop,EntryPrice+((손실+pl)/CurrentContracts)); } 2 Input : 시작일(20230406),시작시간(90000); Var : count(0),Xcond(false),Tcond(False); if Bdate >= 시작일 and sTime >= 시작시간 Then Tcond = true; if TotalTrades > TotalTrades[1] then { if PositionProfit(1) < 0 then { count = count+1; if count == 2 Then Xcond = true; } Else count = 0; } if Tcond == true and Xcond == false then { 진입청산로직 } 3 Input : 손실틱수(100),시작일(20230406),시작시간(90000); Var : Pl(0),손실(0),Xcond(false),Tcond(False); if Bdate >= 시작일 and sTime >= 시작시간 Then Tcond = true; 손실 = PriceScale*손실틱수; if Xcond == true and Bdate != Bdate[1] Then Xcond = False; pl = NetProfit; if TotalTrades > TotalTrades[1] then { if pl <= -손실 Then Xcond = true; if IsExitName("dbl",1) == true or IsExitName("dsl",1) == true then Xcond = true; } if Tcond == true and Xcond == false then { 진입청산로직 } if MarketPosition == 1 then { ExitLong("dbl",AtStop,EntryPrice-((손실+pl)/CurrentContracts)); } if MarketPosition == -1 then { ExitShort("dsl",AtStop,EntryPrice+((손실+pl)/CurrentContracts)); } 4 수식은 차트에 적용되면 차트의 데이타를 이용해 신호와 주문이 집행됩니다. 잔고등은 체크하지 않고 다른 시스템과 정보를 주고받지 않습니다. 모두 독립적으로 동작합니다. 즐거운 하루되세요 > 블루3 님이 쓴 글입니다. > 제목 : 질의 > 손실이 발생시 시스템을 중단하고 싶은데요? 시스템 중단을 할 수 있는 방법이 어떠한 것이 있는지 궁긍합니다. 1,손실틱수로 시스템 중단 2,손실된 매매횟수로 시스템 중단 (예를 들어 2회 연속 손실시 시스템 중단) 3,손실시 당일 시스템 중단 --당일 시스템 중단 후 시장을 보고 다시 시스템을 돌리면 진입과청산이 안되나요? 4, 시스템 중단이 여러개의 차트창으로 시스템 구현시 각각 적용이 되는지. 한계좌의 통합으로 적용이 되는지 궁금합니다. 수고하세요..