커뮤니티

수식부탁드립니다---------------

프로필 이미지
leekss1
2011-03-15 16:37:28
801
글번호 36575
답변완료
Input : Period(20),maP(35),map6(25),N(0.1),Tr1(6),Tr2(12),진입(2000),ADXP(50),Per1(2),X1(30),당일손익(5),익절(20); Var : value(0); var : PLR(0),XCommission(0),XSlippage(0),OpenPL(0),dayPL(0),count(0); #당일누적손익계산 시작 XCommission = ((C*ExitCommission)/100)*CurrentContracts; #%설정 XSlippage = (ExitSlippage)*CurrentContracts; #Pt설정 PLR = 0; count = 0; for var1 = 1 to 10{ if sdate == EntryDate(var1) Then{ count = count+1; PLR = PLR+PositionProfit(var1); } } if MarketPosition() == 0 Then{ OpenPL = 0; dayPL = PLR; } Else{ OpenPL = (PositionProfit-(XCommission+XSlippage)); dayPL = PLR+OpenPL; } #당일누적손익계산 끝 var2 = adx(adxP); value = ma(bids,period)-ma(asks,period); #최근 X봉 동안 최고값이 최저값대비 per%이상 큼 Condition1 = highest(h,x1) >= lowest(L,x1)*(1+(Per1/100)); if stime >= 093000 and stime < 144500 and var2 >=10 and dayPL < (c*0.008) then { if value > value[1]+진입 and ma(C,map) >= ma(C,map)[1]+N and ma(C,9) >= ma(C,9)[1] and Condition1 Then buy(); if value < value[1]-진입 and ma(C,map) <= ma(C,map)[1]-N and ma(C,9) <= ma(C,9)[1] and Condition1 Then Sell(); } SetStopLoss(PriceScale*15,PointStop); #SetStopProfittarget(PriceScale*45,PointStop); if crossup(daypl,2) then{ exitlong(); ExitShort(); } if Condition1 == true Then{ if MarketPosition == 1 Then{ ExitLong("15b절",AtStop,EntryPrice-PriceScale*15); ExitLong("bx5",AtLimit,EntryPrice+PriceScale*익절); } if MarketPosition == -1 Then{ ExitShort("15s절",AtStop,EntryPrice+PriceScale*15); ExitShort("sx5",AtLimit,EntryPrice-PriceScale*익절); } } if Condition1 == false Then{ if MarketPosition == 1 Then{ if Highest(H,BarsSinceEntry) < EntryPrice+1 Then ExitLong("bx1",AtStop,Highest(H,BarsSinceEntry)-tr1); Else ExitLong("bx2",AtStop,Highest(H,BarsSinceEntry)-tr2); } if MarketPosition == -1 Then{ if Lowest(L,BarsSinceEntry) > EntryPrice-1 Then ExitShort("sx1",AtStop,Lowest(L,BarsSinceEntry)+tr1); Else ExitShort("sx2",AtStop,Lowest(L,BarsSinceEntry)+tr2); } } #단기이평청산---------------------- #if MarketPosition == 1 and ma(C,5) < ma(C,5)[1]-0.25 Then # ExitLong(); #if MarketPosition == -1 and ma(C,5) > ma(C,5)[1]+0.25 Then # ExitShort(); //시간청산-------------------- var11 = int(date/100)-int(date/10000)*100; //월 var22 = date - int(date/100)*100; //일 var33 = DayOfWeek(date); //요일 if var11%3 == 0 and var22 >= 8 and var22 <= 14 and var33 == 4 then { SetStopEndofday(144800); //만기날 } else { SetStopEndofday(150100); //평일 } 위식의 if Condition1 == true Then{ if MarketPosition == 1 Then{ ExitLong("15b절",AtStop,EntryPrice-PriceScale*15); ExitLong("bx5",AtLimit,EntryPrice+PriceScale*익절값); } if MarketPosition == -1 Then{ ExitShort("15s절",AtStop,EntryPrice+PriceScale*15); ExitShort("sx5",AtLimit,EntryPrice-PriceScale*익절값); } } 에서 익절값을 지난 15봉동안 변동폭이 종가대비1%이상 이면 익절값을 종가의0.5%로 변경되게해주세요
시스템
답변 2
프로필 이미지

예스스탁 예스스탁 답변

2011-03-15 17:18:21

안녕하세요 예스스탁입니다. Input : Period(20),maP(35),map6(25),N(0.1),Tr1(6),Tr2(12),진입(2000),ADXP(50),Per1(2),X1(30),당일손익(5),익절(20); Var : value(0); var : PLR(0),XCommission(0),XSlippage(0),OpenPL(0),dayPL(0),count(0); #당일누적손익계산 시작 XCommission = ((C*ExitCommission)/100)*CurrentContracts; #%설정 XSlippage = (ExitSlippage)*CurrentContracts; #Pt설정 PLR = 0; count = 0; for var1 = 1 to 10{ if sdate == EntryDate(var1) Then{ count = count+1; PLR = PLR+PositionProfit(var1); } } if MarketPosition() == 0 Then{ OpenPL = 0; dayPL = PLR; } Else{ OpenPL = (PositionProfit-(XCommission+XSlippage)); dayPL = PLR+OpenPL; } #당일누적손익계산 끝 var2 = adx(adxP); value = ma(bids,period)-ma(asks,period); #최근 X봉 동안 최고값이 최저값대비 per%이상 큼 Condition1 = highest(h,x1) >= lowest(L,x1)*(1+(Per1/100)); if stime >= 093000 and stime < 144500 and var2 >=10 and dayPL < (c*0.008) then { if value > value[1]+진입 and ma(C,map) >= ma(C,map)[1]+N and ma(C,9) >= ma(C,9)[1] and Condition1 Then buy(); if value < value[1]-진입 and ma(C,map) <= ma(C,map)[1]-N and ma(C,9) <= ma(C,9)[1] and Condition1 Then Sell(); } SetStopLoss(PriceScale*15,PointStop); #SetStopProfittarget(PriceScale*45,PointStop); if crossup(daypl,2) then{ exitlong(); ExitShort(); } if Condition1 == true Then{ if MarketPosition == 1 Then{ ExitLong("15b절",AtStop,EntryPrice-PriceScale*15); if highest(H,15) <= C*1.01 then ExitLong("bx5",AtLimit,EntryPrice+PriceScale*익절); Else ExitLong("bx55",AtLimit,c*1.005); } if MarketPosition == -1 Then{ ExitShort("15s절",AtStop,EntryPrice+PriceScale*15); if Lowest(L,15) >= C*0.99 Then ExitShort("sx5",AtLimit,EntryPrice-PriceScale*익절); Else ExitShort("sx55",AtLimit,C*0.995); } } if Condition1 == false Then{ if MarketPosition == 1 Then{ if Highest(H,BarsSinceEntry) < EntryPrice+1 Then ExitLong("bx1",AtStop,Highest(H,BarsSinceEntry)-tr1); Else ExitLong("bx2",AtStop,Highest(H,BarsSinceEntry)-tr2); } if MarketPosition == -1 Then{ if Lowest(L,BarsSinceEntry) > EntryPrice-1 Then ExitShort("sx1",AtStop,Lowest(L,BarsSinceEntry)+tr1); Else ExitShort("sx2",AtStop,Lowest(L,BarsSinceEntry)+tr2); } } #단기이평청산---------------------- #if MarketPosition == 1 and ma(C,5) < ma(C,5)[1]-0.25 Then # ExitLong(); #if MarketPosition == -1 and ma(C,5) > ma(C,5)[1]+0.25 Then # ExitShort(); //시간청산-------------------- var11 = int(date/100)-int(date/10000)*100; //월 var22 = date - int(date/100)*100; //일 var33 = DayOfWeek(date); //요일 if var11%3 == 0 and var22 >= 8 and var22 <= 14 and var33 == 4 then { SetStopEndofday(144800); //만기날 } else { SetStopEndofday(150100); //평일 } 즐거운 하루되세요 > leekss1 님이 쓴 글입니다. > 제목 : 수식부탁드립니다--------------- > Input : Period(20),maP(35),map6(25),N(0.1),Tr1(6),Tr2(12),진입(2000),ADXP(50),Per1(2),X1(30),당일손익(5),익절(20); Var : value(0); var : PLR(0),XCommission(0),XSlippage(0),OpenPL(0),dayPL(0),count(0); #당일누적손익계산 시작 XCommission = ((C*ExitCommission)/100)*CurrentContracts; #%설정 XSlippage = (ExitSlippage)*CurrentContracts; #Pt설정 PLR = 0; count = 0; for var1 = 1 to 10{ if sdate == EntryDate(var1) Then{ count = count+1; PLR = PLR+PositionProfit(var1); } } if MarketPosition() == 0 Then{ OpenPL = 0; dayPL = PLR; } Else{ OpenPL = (PositionProfit-(XCommission+XSlippage)); dayPL = PLR+OpenPL; } #당일누적손익계산 끝 var2 = adx(adxP); value = ma(bids,period)-ma(asks,period); #최근 X봉 동안 최고값이 최저값대비 per%이상 큼 Condition1 = highest(h,x1) >= lowest(L,x1)*(1+(Per1/100)); if stime >= 093000 and stime < 144500 and var2 >=10 and dayPL < (c*0.008) then { if value > value[1]+진입 and ma(C,map) >= ma(C,map)[1]+N and ma(C,9) >= ma(C,9)[1] and Condition1 Then buy(); if value < value[1]-진입 and ma(C,map) <= ma(C,map)[1]-N and ma(C,9) <= ma(C,9)[1] and Condition1 Then Sell(); } SetStopLoss(PriceScale*15,PointStop); #SetStopProfittarget(PriceScale*45,PointStop); if crossup(daypl,2) then{ exitlong(); ExitShort(); } if Condition1 == true Then{ if MarketPosition == 1 Then{ ExitLong("15b절",AtStop,EntryPrice-PriceScale*15); ExitLong("bx5",AtLimit,EntryPrice+PriceScale*익절); } if MarketPosition == -1 Then{ ExitShort("15s절",AtStop,EntryPrice+PriceScale*15); ExitShort("sx5",AtLimit,EntryPrice-PriceScale*익절); } } if Condition1 == false Then{ if MarketPosition == 1 Then{ if Highest(H,BarsSinceEntry) < EntryPrice+1 Then ExitLong("bx1",AtStop,Highest(H,BarsSinceEntry)-tr1); Else ExitLong("bx2",AtStop,Highest(H,BarsSinceEntry)-tr2); } if MarketPosition == -1 Then{ if Lowest(L,BarsSinceEntry) > EntryPrice-1 Then ExitShort("sx1",AtStop,Lowest(L,BarsSinceEntry)+tr1); Else ExitShort("sx2",AtStop,Lowest(L,BarsSinceEntry)+tr2); } } #단기이평청산---------------------- #if MarketPosition == 1 and ma(C,5) < ma(C,5)[1]-0.25 Then # ExitLong(); #if MarketPosition == -1 and ma(C,5) > ma(C,5)[1]+0.25 Then # ExitShort(); //시간청산-------------------- var11 = int(date/100)-int(date/10000)*100; //월 var22 = date - int(date/100)*100; //일 var33 = DayOfWeek(date); //요일 if var11%3 == 0 and var22 >= 8 and var22 <= 14 and var33 == 4 then { SetStopEndofday(144800); //만기날 } else { SetStopEndofday(150100); //평일 } 위식의 if Condition1 == true Then{ if MarketPosition == 1 Then{ ExitLong("15b절",AtStop,EntryPrice-PriceScale*15); ExitLong("bx5",AtLimit,EntryPrice+PriceScale*익절값); } if MarketPosition == -1 Then{ ExitShort("15s절",AtStop,EntryPrice+PriceScale*15); ExitShort("sx5",AtLimit,EntryPrice-PriceScale*익절값); } } 에서 익절값을 지난 15봉동안 변동폭이 종가대비1%이상 이면 익절값을 종가의0.5%로 변경되게해주세요
프로필 이미지

회원

2012-02-28 20:32:29

관리자님에 의해 삭제된 답변입니다.