커뮤니티

수식추가요청드립니다.

프로필 이미지
dandy
2015-10-15 16:16:05
113
글번호 91328
답변완료
아래수식에서 매도 매수 본신호진입 과 피라미딩 진입 후 전체 설정수익(외부변수)이 2PT 이상 발생한 후 MA10 이평 MA 20이평 상 하향 돌파즉시 조건만족 수익보전 청산수식 추가요청 드립니다. 일반적인 수익보전 수식 추가로는 수익보전 청산이 안되네요. 감사합니다. input :N(1),당일손실(1.5),i증감(0.1),진입수량(1); var : cnt(0),BCount(0),SCount(0); var : NP(0),PreNP(0),DayPL(0),loss(0),v1(0); NP = NetProfit; if date != date[1] Then{ preNP = NP[1]; Condition1 = false; v1 = 0; } dayPL = NP-PreNP; BCount = 0 ; SCount = 0 ; for cnt = 0 to 10 { if EntryDate(cnt) == sdate and MarketPosition(cnt) == 1 then BCount = BCount + 1; if EntryDate(cnt) == sdate and MarketPosition(cnt) == -1 then SCount = SCount + 1; } if Condition1 == false and TotalTrades > TotalTrades[1] Then{ Condition1 = true; if PositionProfit(1) > 0 Then v1 = PositionProfit(1); } //------------------------------------------------------------------------- #당일손실제한 if MarketPosition == 1 Then{ ExitLong("당일손실제한bx3",AtStop,avgEntryPrice-(당일손실+(dayPL-v1))/CurrentContracts); } if MarketPosition == -1 Then{ ExitShort("당일손실제한sx3",AtStop,avgEntryPrice+(당일손실+(dayPL-v1))/CurrentContracts); } //------------------------------------------------------------------------------------------------------ #기존수식 손실손절 스위칭 피라미딩 적용수식 if MarketPosition == -1 and BCount+SCount < N and dayPL > -당일손실 Then buy("1BX",AtStop,EntryPrice+1.2); if MarketPosition == 1 and BCount+SCount < N and dayPL > -당일손실 Then sell("1SX",AtStop,EntryPrice-1.2); //------------------------------------------------------------------------------------------------------ if MarketPosition == 1 Then Buy("bb",AtStop,LatestEntryPrice(0)+i증감,진입수량); if MarketPosition == -1 Then sell("ss",AtStop,LatestEntryPrice(0)-i증감,진입수량); //--------------------------------------------------------------------------------------
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2015-10-15 17:13:00

안녕하세요 예스스탁입니다. PositionProfit함수가 현재 진입의 손익을 리턴해 주게 됩니다. 피라미딩 진입도 모두 포함해서 손익이 리턴됩니다. 그러므로 진입이후 2포인트이상 수익이 발생했다라는 부분은 highest(PositionProfit,BarsSinceEntry) >= 2 와 같이 조건을 주시면 됩니다 또한 2포인트 이상 수익후에 이평 골드/데드가 발생한 시점은 손실상태일수도 있습니다. 손실상태에서는 골드나 데드가 나도 청산되지 않게 매수청산에는 종가가 평단가위, 매도청산에는 종가가 평단가 아래라는 조건을 추가로 주었습니다. 이평간 골드/데드는 즉시 발생하게 작성이 되지 않습니다. 봉완성시로만 가능합니다. 참고하시기 바랍니다. input :N(1),당일손실(1.5),i증감(0.1),진입수량(1); var : cnt(0),BCount(0),SCount(0); var : NP(0),PreNP(0),DayPL(0),loss(0),v1(0); var : mav1(0),mav2(0); NP = NetProfit; if date != date[1] Then{ preNP = NP[1]; Condition1 = false; v1 = 0; } dayPL = NP-PreNP; BCount = 0 ; SCount = 0 ; for cnt = 0 to 10 { if EntryDate(cnt) == sdate and MarketPosition(cnt) == 1 then BCount = BCount + 1; if EntryDate(cnt) == sdate and MarketPosition(cnt) == -1 then SCount = SCount + 1; } if Condition1 == false and TotalTrades > TotalTrades[1] Then{ Condition1 = true; if PositionProfit(1) > 0 Then v1 = PositionProfit(1); } //------------------------------------------------------------------------- #당일손실제한 if MarketPosition == 1 Then{ ExitLong("당일손실제한bx3",AtStop,avgEntryPrice-(당일손실+(dayPL-v1))/CurrentContracts); } if MarketPosition == -1 Then{ ExitShort("당일손실제한sx3",AtStop,avgEntryPrice+(당일손실+(dayPL-v1))/CurrentContracts); } //------------------------------------------------------------------------------------------------------ #기존수식 손실손절 스위칭 피라미딩 적용수식 if MarketPosition == -1 and BCount+SCount < N and dayPL > -당일손실 Then buy("1BX",AtStop,EntryPrice+1.2); if MarketPosition == 1 and BCount+SCount < N and dayPL > -당일손실 Then sell("1SX",AtStop,EntryPrice-1.2); //------------------------------------------------------------------------------------------------------ if MarketPosition == 1 Then Buy("bb",AtStop,LatestEntryPrice(0)+i증감,진입수량); if MarketPosition == -1 Then sell("ss",AtStop,LatestEntryPrice(0)-i증감,진입수량); //-------------------------------------------------------------------------------------- mav1 = ma(c,10); mav2 = ma(C,20); if MarketPosition == 1 and highest(PositionProfit,BarsSinceEntry) >= 2 And CrossDown(mav1,mav2) and C > AvgEntryPrice Then exitlong(); if MarketPosition == -1 and highest(PositionProfit,BarsSinceEntry) >= 2 And CrossUp(mav1,mav2) and C < AvgEntryPrice Then ExitShort(); 즐거운 하루되세요 > dandy 님이 쓴 글입니다. > 제목 : 수식추가요청드립니다. > 아래수식에서 매도 매수 본신호진입 과 피라미딩 진입 후 전체 설정수익(외부변수)이 2PT 이상 발생한 후 MA10 이평 MA 20이평 상 하향 돌파즉시 조건만족 수익보전 청산수식 추가요청 드립니다. 일반적인 수익보전 수식 추가로는 수익보전 청산이 안되네요. 감사합니다. input :N(1),당일손실(1.5),i증감(0.1),진입수량(1); var : cnt(0),BCount(0),SCount(0); var : NP(0),PreNP(0),DayPL(0),loss(0),v1(0); NP = NetProfit; if date != date[1] Then{ preNP = NP[1]; Condition1 = false; v1 = 0; } dayPL = NP-PreNP; BCount = 0 ; SCount = 0 ; for cnt = 0 to 10 { if EntryDate(cnt) == sdate and MarketPosition(cnt) == 1 then BCount = BCount + 1; if EntryDate(cnt) == sdate and MarketPosition(cnt) == -1 then SCount = SCount + 1; } if Condition1 == false and TotalTrades > TotalTrades[1] Then{ Condition1 = true; if PositionProfit(1) > 0 Then v1 = PositionProfit(1); } //------------------------------------------------------------------------- #당일손실제한 if MarketPosition == 1 Then{ ExitLong("당일손실제한bx3",AtStop,avgEntryPrice-(당일손실+(dayPL-v1))/CurrentContracts); } if MarketPosition == -1 Then{ ExitShort("당일손실제한sx3",AtStop,avgEntryPrice+(당일손실+(dayPL-v1))/CurrentContracts); } //------------------------------------------------------------------------------------------------------ #기존수식 손실손절 스위칭 피라미딩 적용수식 if MarketPosition == -1 and BCount+SCount < N and dayPL > -당일손실 Then buy("1BX",AtStop,EntryPrice+1.2); if MarketPosition == 1 and BCount+SCount < N and dayPL > -당일손실 Then sell("1SX",AtStop,EntryPrice-1.2); //------------------------------------------------------------------------------------------------------ if MarketPosition == 1 Then Buy("bb",AtStop,LatestEntryPrice(0)+i증감,진입수량); if MarketPosition == -1 Then sell("ss",AtStop,LatestEntryPrice(0)-i증감,진입수량); //--------------------------------------------------------------------------------------