커뮤니티

수식요청드립니다.

프로필 이미지
dandy
2016-01-08 11:20:31
138
글번호 94219
답변완료
안녕하세요. 아래 당일손실제한 무포지션 후 재진입조건에 시간적용만 추가요청 드립니다. -> 당일손실제한 청산 후 1시간15분30초 부터 ~ 2시간20분50초 까지 재진입 손절 익절 청산 수식 적용으로 수정요청 드립니다. 감사합니다. input : N(1),PN(2),당일손실(1.0),i증감(0.3),진입수량(1); var : cnt(0),BCount(0),SCount(0); var : NP(0),PreNP(0),DayPL(0),loss(0),v1(0); var : mav1(0),mav2(0),mav3(0),mav4(0),mav5(0),mav6(0); var : Bxcond(false),SxCond(false); var : Xcond(false); var : TT(0),KK(0),DD(0); NP = NetProfit; if date != date[1] Then{ preNP = NP[1]; Condition1 = false; v1 = 0; Xcond = false; } 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); } //------------------------------------------------------------------------- //추가진입인 BB가 아닐때만 발동 if MarketPosition == 1 and IsEntryName("BB") == false Then{ ExitLong("당일손실제한bx3",AtStop,avgEntryPrice-(당일손실+(dayPL-v1))/CurrentContracts); } //추가진입인 SS가 아닐때만 발동 if MarketPosition == -1 and IsEntryName("SS") == false Then{ ExitShort("당일손실제한sx3",AtStop,avgEntryPrice+(당일손실+(dayPL-v1))/CurrentContracts); } //------------------------------------------------------------------------------------------------------ #피라미딩 if MarketPosition == 1 and Bxcond == false and Xcond == false Then Buy("PBB",atlimit,LatestEntryPrice(0)+i증감,진입수량); if MarketPosition == -1 and Sxcond == false and XCond == false Then sell("PSS",atlimit,LatestEntryPrice(0)-i증감,진입수량); //----------------------------------------------------------------------------------------------------- #당일손실제한 청산이 발생하면 Xcond는 true로 변경 if MarketPosition == 0 and TotalTrades > TotalTrades[1] and (IsExitName("당일손실제한sx3",1) == true or IsExitName("당일손실제한bx3",1) == true) Then Xcond = true; #추가진입 #무포지션이고 Xcond가 true이고 #직전청산이 당일손실제한일때만 발생 if MarketPosition == 0 and Xcond == true and (IsExitName("당일손실제한sx3",1) == true or IsExitName("당일손실제한bx3",1) == true) Then{ if Crossup(ma(c,10),ma(C,20)) Then Buy("BB",AtMarket); if CrossDown(ma(C,10),ma(C,20)) Then Sell("SS",AtMarket); } #BB진입에 대한 청산 if MarketPosition == 1 and IsEntryName("BB") == true Then{ ExitLong("BL1",AtStop,avgEntryPrice-0.5); ExitLong("BP1",AtLimit,avgEntryPrice+1.0); } #SS진입에 대한 청산 if MarketPosition == -1 and IsEntryName("SS") == true Then{ ExitShort("SL1",AtStop,avgEntryPrice+0.5); ExitShort("SP1",AtLimit,avgEntryPrice-1.0); } //------------------------------------------------------------------------------------------------------
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2016-01-08 15:11:21

안녕하세요 예스스탁입니다. input : N(1),PN(2),당일손실(1.0),i증감(0.3),진입수량(1); var : cnt(0),BCount(0),SCount(0); var : NP(0),PreNP(0),DayPL(0),loss(0),v1(0); var : mav1(0),mav2(0),mav3(0),mav4(0),mav5(0),mav6(0); var : Bxcond(false),SxCond(false); var : Xcond(false); var : TT(0),KK(0),DD(0); var : MM(0),SS(0),MMSS(0); MM = TimeToMinutes(stime); SS = FracPortion(stime/100); MMSS = MM+SS; NP = NetProfit; if date != date[1] Then{ preNP = NP[1]; Condition1 = false; v1 = 0; Xcond = false; } 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); } //------------------------------------------------------------------------- //추가진입인 BB가 아닐때만 발동 if MarketPosition == 1 and IsEntryName("BB") == false Then{ ExitLong("당일손실제한bx3",AtStop,avgEntryPrice-(당일손실+(dayPL-v1))/CurrentContracts); } //추가진입인 SS가 아닐때만 발동 if MarketPosition == -1 and IsEntryName("SS") == false Then{ ExitShort("당일손실제한sx3",AtStop,avgEntryPrice+(당일손실+(dayPL-v1))/CurrentContracts); } //------------------------------------------------------------------------------------------------------ #피라미딩 if MarketPosition == 1 and Bxcond == false and Xcond == false Then Buy("PBB",atlimit,LatestEntryPrice(0)+i증감,진입수량); if MarketPosition == -1 and Sxcond == false and XCond == false Then sell("PSS",atlimit,LatestEntryPrice(0)-i증감,진입수량); //----------------------------------------------------------------------------------------------------- #당일손실제한 청산이 발생하면 Xcond는 true로 변경 if MarketPosition == 0 and TotalTrades > TotalTrades[1] and (IsExitName("당일손실제한sx3",1) == true or IsExitName("당일손실제한bx3",1) == true) Then Xcond = true; #청산후 75분 30초 이후~~140분 50초 이전 if MMSS >= MMSS[BarsSinceExit(1)]+75.30 and MMSS <= MMSS+140.50 Then{ #추가진입 #무포지션이고 Xcond가 true이고 #직전청산이 당일손실제한일때만 발생 if MarketPosition == 0 and Xcond == true and (IsExitName("당일손실제한sx3",1) == true or IsExitName("당일손실제한bx3",1) == true) Then{ if Crossup(ma(c,10),ma(C,20)) Then Buy("BB",AtMarket); if CrossDown(ma(C,10),ma(C,20)) Then Sell("SS",AtMarket); } #BB진입에 대한 청산 if MarketPosition == 1 and IsEntryName("BB") == true Then{ ExitLong("BL1",AtStop,avgEntryPrice-0.5); ExitLong("BP1",AtLimit,avgEntryPrice+1.0); } #SS진입에 대한 청산 if MarketPosition == -1 and IsEntryName("SS") == true Then{ ExitShort("SL1",AtStop,avgEntryPrice+0.5); ExitShort("SP1",AtLimit,avgEntryPrice-1.0); } } //------------------------------------------------------------------------------------------------------ 즐거운 하루되세요 > dandy 님이 쓴 글입니다. > 제목 : 수식요청드립니다. > 안녕하세요. 아래 당일손실제한 무포지션 후 재진입조건에 시간적용만 추가요청 드립니다. -> 당일손실제한 청산 후 1시간15분30초 부터 ~ 2시간20분50초 까지 재진입 손절 익절 청산 수식 적용으로 수정요청 드립니다. 감사합니다. input : N(1),PN(2),당일손실(1.0),i증감(0.3),진입수량(1); var : cnt(0),BCount(0),SCount(0); var : NP(0),PreNP(0),DayPL(0),loss(0),v1(0); var : mav1(0),mav2(0),mav3(0),mav4(0),mav5(0),mav6(0); var : Bxcond(false),SxCond(false); var : Xcond(false); var : TT(0),KK(0),DD(0); NP = NetProfit; if date != date[1] Then{ preNP = NP[1]; Condition1 = false; v1 = 0; Xcond = false; } 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); } //------------------------------------------------------------------------- //추가진입인 BB가 아닐때만 발동 if MarketPosition == 1 and IsEntryName("BB") == false Then{ ExitLong("당일손실제한bx3",AtStop,avgEntryPrice-(당일손실+(dayPL-v1))/CurrentContracts); } //추가진입인 SS가 아닐때만 발동 if MarketPosition == -1 and IsEntryName("SS") == false Then{ ExitShort("당일손실제한sx3",AtStop,avgEntryPrice+(당일손실+(dayPL-v1))/CurrentContracts); } //------------------------------------------------------------------------------------------------------ #피라미딩 if MarketPosition == 1 and Bxcond == false and Xcond == false Then Buy("PBB",atlimit,LatestEntryPrice(0)+i증감,진입수량); if MarketPosition == -1 and Sxcond == false and XCond == false Then sell("PSS",atlimit,LatestEntryPrice(0)-i증감,진입수량); //----------------------------------------------------------------------------------------------------- #당일손실제한 청산이 발생하면 Xcond는 true로 변경 if MarketPosition == 0 and TotalTrades > TotalTrades[1] and (IsExitName("당일손실제한sx3",1) == true or IsExitName("당일손실제한bx3",1) == true) Then Xcond = true; #추가진입 #무포지션이고 Xcond가 true이고 #직전청산이 당일손실제한일때만 발생 if MarketPosition == 0 and Xcond == true and (IsExitName("당일손실제한sx3",1) == true or IsExitName("당일손실제한bx3",1) == true) Then{ if Crossup(ma(c,10),ma(C,20)) Then Buy("BB",AtMarket); if CrossDown(ma(C,10),ma(C,20)) Then Sell("SS",AtMarket); } #BB진입에 대한 청산 if MarketPosition == 1 and IsEntryName("BB") == true Then{ ExitLong("BL1",AtStop,avgEntryPrice-0.5); ExitLong("BP1",AtLimit,avgEntryPrice+1.0); } #SS진입에 대한 청산 if MarketPosition == -1 and IsEntryName("SS") == true Then{ ExitShort("SL1",AtStop,avgEntryPrice+0.5); ExitShort("SP1",AtLimit,avgEntryPrice-1.0); } //------------------------------------------------------------------------------------------------------