커뮤니티

수익 마진 체크

프로필 이미지
gap
2017-12-19 23:52:28
101
글번호 115118
답변완료
안녕하세요. 수익이 나는 시점부터 정해진 Margin율(%)만큼 줄어들 때 청산하는 로직을 구현하고 싶습니다. 아래와 같이 구현해보았으나 MessageLog를 찍어보면 변수 PT값이 '0'으로 찍혀 나와서 의도한 대로 청산되지 않네요. 검토 후 수정 부탁드리겠습니다. 감사합니다. Input: Margin(0.85); Var: OP(0), PT(0); OP = OpenPositionProfit; // Margin Trailing PT = OP * PriceScale * Margin; (ProfitPoint1,2와 LossPoint1,2는 위에 선언되었다고 가정) // 진입한 시점의 가격부터 목표수익까지 체크 Aplus = EntryPrice + ProfitPoint1; Aminus = EntryPrice - ProfitPoint1; BPlus = EntryPrice + ProfitPoint2; Bminus = EntryPrice - ProfitPoint2; // 수익이 나는 시점부터 Margin만큼의 수익으로 줄어드는 시점까지 체크 MarginExL = EntryPrice + PT; MarginExS = EntryPrice - PT; // 매수 추적 청산 1 If Close > Aplus Then { ExitLong("Ext_Buy", AtStop, MarginExL); } // 매도 추적 청산 1 If Close < Aminus Then { ExitShort("Ext_Sell", AtStop, MarginExS); } // 매수 추적 청산 2 If Close > BPlus Then { ExitLong("Ext_Buy", AtStop, MarginExL); } // 매도 추적 청산 2 If Close < Bminus Then { ExitShort("Ext_Sell", AtStop, MarginExS); }
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2017-12-20 15:36:03

안녕하세요 예스스탁입니다. 어떤 내용의 수식을 구현하고자 하시는지 올리신 내용만으로는 판단하기 어렵습니다. OP = OpenPositionProfit; PT = OP * PriceScale * Margin; PT가 어떤 의미의 계산식인지 모르겠습니다. 올려주신 내용이 매수진입이후 aplus이상 수익이 발생했었고 이후에 수익이 15% 수익이 감소할때 청산 매수진입이후 aminus이상 수익이 발생했었고 이후에 수익이 15% 수익이 감소할때 청산 이면 아래와 같이 식 작성하시면 됩니다. a만 올려드립니다. Input: Margin(0.85); Var: Aplus(0), Aminus(0); If highest(H,BarsSinceEntry) >= Aplus Then { ExitLong("Ext_Buy", AtStop,EntryPrice+(highest(h,BarsSinceEntry)-EntryPrice)*margin); } If lowest(L,BarsSinceEntry) < Aminus Then { ExitShort("Ext_Sell", AtStop, EntryPrice-(EntryPrice-lowest(l,BarsSinceEntry))*margin); } 즐거운 하루되세요 > gap 님이 쓴 글입니다. > 제목 : 수익 마진 체크 > 안녕하세요. 수익이 나는 시점부터 정해진 Margin율(%)만큼 줄어들 때 청산하는 로직을 구현하고 싶습니다. 아래와 같이 구현해보았으나 MessageLog를 찍어보면 변수 PT값이 '0'으로 찍혀 나와서 의도한 대로 청산되지 않네요. 검토 후 수정 부탁드리겠습니다. 감사합니다. Input: Margin(0.85); Var: OP(0), PT(0); OP = OpenPositionProfit; // Margin Trailing PT = OP * PriceScale * Margin; (ProfitPoint1,2와 LossPoint1,2는 위에 선언되었다고 가정) // 진입한 시점의 가격부터 목표수익까지 체크 Aplus = EntryPrice + ProfitPoint1; Aminus = EntryPrice - ProfitPoint1; BPlus = EntryPrice + ProfitPoint2; Bminus = EntryPrice - ProfitPoint2; // 수익이 나는 시점부터 Margin만큼의 수익으로 줄어드는 시점까지 체크 MarginExL = EntryPrice + PT; MarginExS = EntryPrice - PT; // 매수 추적 청산 1 If Close > Aplus Then { ExitLong("Ext_Buy", AtStop, MarginExL); } // 매도 추적 청산 1 If Close < Aminus Then { ExitShort("Ext_Sell", AtStop, MarginExS); } // 매수 추적 청산 2 If Close > BPlus Then { ExitLong("Ext_Buy", AtStop, MarginExL); } // 매도 추적 청산 2 If Close < Bminus Then { ExitShort("Ext_Sell", AtStop, MarginExS); }