커뮤니티

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

프로필 이미지
leekss1
2012-02-17 15:56:33
391
글번호 47893
답변완료
//일정기간의 최고저값 를 테마한값// Input:length1(65),length2(150),장기전봉차(0.006),초장기전봉차(0),연속봉수(30); Input:변동기간(0),변동치(0); Var:초장기봉기간(1),장기봉기간(1); var : PLR(0),XCommission(0),XSlippage(0),OpenPL(0),dayPL(0),count(0),당일손익(300000); var:Ep(0),T1(0),T2(0),T3(0),TEMA82(0); var:TEMA71(0),eep(0),tt1(0),tt2(0),tt3(0),TEMA92(0); #당일누적손익계산 시작 XCommission = ((C*ExitCommission)/100)*CurrentContracts; #%설정 XSlippage = (ExitSlippage)*CurrentContracts; #Pt설정 PLR = 0; count = 0; for var16 = 1 to 20{ if sdate == EntryDate(var16) Then{ count = count+1; PLR = PLR+PositionProfit(var16); } } if MarketPosition() == 0 Then{ OpenPL = 0; dayPL = PLR; } Else{ OpenPL = (PositionProfit-(XCommission+XSlippage)); dayPL = PLR+OpenPL; } //당일누적손익계산 끝 value6 = (당일손익/BigPointValue); //장기최고저테마값 시작************************************************** if dayindex+1 < 장기봉기간 Then{ var81 = DayHigh; var82 = DayLow; } Else{ var81 = highest(H,장기봉기간); var82 = Lowest(L,장기봉기간); } value81 = (var81 - var82)/2+var82; Ep = 2/(LENGTH1+1); if dayindex == 0 Then T1 = value81; Else T1 = value81*EP + T1[1] * (1-EP); if dayindex <= 1 Then T2 = T1; Else T2 = T1*EP + T2[1] * (1-EP); if dayindex <= 2 Then T3 = T2; Else T3 = T2*EP + T3[1] * (1-EP); TEMA82 = (3 * T1) - (3 * T2) + (T3); //장기최고저테마값 끝************************************************** //초장기최고저테마값 시작************************************************** if dayindex+1 < 초장기봉기간 Then{ var91 = DayHigh; var92 = DayLow; } Else{ var91 = highest(H,초장기봉기간); var92 = Lowest(L,초장기봉기간); } value91 = (var91 - var92)/2+var92; eEp = 2/(LENGTH2+1); if dayindex == 0 Then tT1 = value91; Else tT1 = value91*eEP + tT1[1] * (1-eEP); if dayindex <= 1 Then tT2 = tT1; Else tT2 = tT1*eEP + tT2[1] * (1-eEP); if dayindex <= 2 Then tT3 = tT2; Else tT3 = tT2*eEP + tT3[1] * (1-eEP); TEMA92 = (3 * tT1) - (3 * tT2) + (tT3); //초장기최고저테마값 끝************************************************** if sdate != sdate[1] Then Condition3 = false; Condition1 = highest(h,변동기간) >= lowest(L,변동기간)*(1+(변동치/100)); //Condition2= CountIF(TEMA92==TEMA92[1],30) == 30 ; if dayindex >= 60 and stime <143000 and dayPL < value6 then{ if CountIF(TEMA92 >=TEMA92[1]+초장기전봉차,연속봉수) == 연속봉수 then { buy("b"); } if CountIF(TEMA92 <=TEMA92[1]-초장기전봉차,연속봉수) == 연속봉수 then { Sell("s"); } } if dayindex >= 60 and sTime>=143000 and stime <150300 then{ if CountIF(TEMA92 >=TEMA92[1]+초장기전봉차,연속봉수) == 연속봉수 and MarketPosition==-1 then { ExitShort("xs"); } if CountIF(TEMA92 <=TEMA92[1]-초장기전봉차,연속봉수) == 연속봉수 and MarketPosition==1 then { ExitLong("xb"); } } //시간청산------------------------------------------------------------ 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(150300); } if MarketPosition == 1 Then{ ExitLong("bxx",AtStop,EntryPrice+(-(value6)-(PLR))); } if MarketPosition == -1 Then{ ExitShort("sxx",AtStop,EntryPrice+((value6)+(PLR))); } 포지션이 있을때 5개봉 완성되는데 20초 이상 걸리면 청산만하고 진입은 안하게해주시고 포지션이 없을때 5개봉 완성되는데 20초 이상 걸리면 신규진입을 안하게 고처주세요 수고하세요
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2012-02-17 17:47:15

안녕하세요 예스스탁입니다. //일정기간의 최고저값 를 테마한값// Input:length1(65),length2(150),장기전봉차(0.006),초장기전봉차(0),연속봉수(30); Input:변동기간(0),변동치(0); Var:초장기봉기간(1),장기봉기간(1); var : PLR(0),XCommission(0),XSlippage(0),OpenPL(0),dayPL(0),count(0),당일손익(300000); var:Ep(0),T1(0),T2(0),T3(0),TEMA82(0); var:TEMA71(0),eep(0),tt1(0),tt2(0),tt3(0),TEMA92(0); var : stimeTosecond(0),timeTosecond(0),SecondMakecandle(0); var1 = TimeToMinutes(stime)*60; var2 = FracPortion(stime/100)*100;//시작시간 초 stimeTosecond = var1+var2; value1 = TimeToMinutes(time)*60; value2 = FracPortion(time/100)*100;//&#44561;시간 초 timeTosecond = value1+value2; SecondMakecandle = timeTosecond-stimeTosecond; #당일누적손익계산 시작 XCommission = ((C*ExitCommission)/100)*CurrentContracts; #%설정 XSlippage = (ExitSlippage)*CurrentContracts; #Pt설정 PLR = 0; count = 0; for var16 = 1 to 20{ if sdate == EntryDate(var16) Then{ count = count+1; PLR = PLR+PositionProfit(var16); } } if MarketPosition() == 0 Then{ OpenPL = 0; dayPL = PLR; } Else{ OpenPL = (PositionProfit-(XCommission+XSlippage)); dayPL = PLR+OpenPL; } //당일누적손익계산 끝 value6 = (당일손익/BigPointValue); //장기최고저테마값 시작************************************************** if dayindex+1 < 장기봉기간 Then{ var81 = DayHigh; var82 = DayLow; } Else{ var81 = highest(H,장기봉기간); var82 = Lowest(L,장기봉기간); } value81 = (var81 - var82)/2+var82; Ep = 2/(LENGTH1+1); if dayindex == 0 Then T1 = value81; Else T1 = value81*EP + T1[1] * (1-EP); if dayindex <= 1 Then T2 = T1; Else T2 = T1*EP + T2[1] * (1-EP); if dayindex <= 2 Then T3 = T2; Else T3 = T2*EP + T3[1] * (1-EP); TEMA82 = (3 * T1) - (3 * T2) + (T3); //장기최고저테마값 끝************************************************** //초장기최고저테마값 시작************************************************** if dayindex+1 < 초장기봉기간 Then{ var91 = DayHigh; var92 = DayLow; } Else{ var91 = highest(H,초장기봉기간); var92 = Lowest(L,초장기봉기간); } value91 = (var91 - var92)/2+var92; eEp = 2/(LENGTH2+1); if dayindex == 0 Then tT1 = value91; Else tT1 = value91*eEP + tT1[1] * (1-eEP); if dayindex <= 1 Then tT2 = tT1; Else tT2 = tT1*eEP + tT2[1] * (1-eEP); if dayindex <= 2 Then tT3 = tT2; Else tT3 = tT2*eEP + tT3[1] * (1-eEP); TEMA92 = (3 * tT1) - (3 * tT2) + (tT3); //초장기최고저테마값 끝************************************************** if sdate != sdate[1] Then Condition3 = false; Condition1 = highest(h,변동기간) >= lowest(L,변동기간)*(1+(변동치/100)); //Condition2= CountIF(TEMA92==TEMA92[1],30) == 30 ; if dayindex >= 60 and stime <143000 and dayPL < value6 then{ if CountIF(TEMA92 >=TEMA92[1]+초장기전봉차,연속봉수) == 연속봉수 then { if AccumN(SecondMakecandle,5) < 20 Then buy(); Else ExitShort(); } if CountIF(TEMA92 <=TEMA92[1]-초장기전봉차,연속봉수) == 연속봉수 then { if AccumN(SecondMakecandle,5) < 20 Then sell(); Else Exitlong(); } } if dayindex >= 60 and sTime>=143000 and stime <150300 then{ if CountIF(TEMA92 >=TEMA92[1]+초장기전봉차,연속봉수) == 연속봉수 and MarketPosition==-1 then { ExitShort("xs"); } if CountIF(TEMA92 <=TEMA92[1]-초장기전봉차,연속봉수) == 연속봉수 and MarketPosition==1 then { ExitLong("xb"); } } //시간청산------------------------------------------------------------ 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(150300); } if MarketPosition == 1 Then{ ExitLong("bxx",AtStop,EntryPrice+(-(value6)-(PLR))); } if MarketPosition == -1 Then{ ExitShort("sxx",AtStop,EntryPrice+((value6)+(PLR))); } 즐거운 하루되세요 > leekss1 님이 쓴 글입니다. > 제목 : 수정부탁드립니다---- > //일정기간의 최고저값 를 테마한값// Input:length1(65),length2(150),장기전봉차(0.006),초장기전봉차(0),연속봉수(30); Input:변동기간(0),변동치(0); Var:초장기봉기간(1),장기봉기간(1); var : PLR(0),XCommission(0),XSlippage(0),OpenPL(0),dayPL(0),count(0),당일손익(300000); var:Ep(0),T1(0),T2(0),T3(0),TEMA82(0); var:TEMA71(0),eep(0),tt1(0),tt2(0),tt3(0),TEMA92(0); #당일누적손익계산 시작 XCommission = ((C*ExitCommission)/100)*CurrentContracts; #%설정 XSlippage = (ExitSlippage)*CurrentContracts; #Pt설정 PLR = 0; count = 0; for var16 = 1 to 20{ if sdate == EntryDate(var16) Then{ count = count+1; PLR = PLR+PositionProfit(var16); } } if MarketPosition() == 0 Then{ OpenPL = 0; dayPL = PLR; } Else{ OpenPL = (PositionProfit-(XCommission+XSlippage)); dayPL = PLR+OpenPL; } //당일누적손익계산 끝 value6 = (당일손익/BigPointValue); //장기최고저테마값 시작************************************************** if dayindex+1 < 장기봉기간 Then{ var81 = DayHigh; var82 = DayLow; } Else{ var81 = highest(H,장기봉기간); var82 = Lowest(L,장기봉기간); } value81 = (var81 - var82)/2+var82; Ep = 2/(LENGTH1+1); if dayindex == 0 Then T1 = value81; Else T1 = value81*EP + T1[1] * (1-EP); if dayindex <= 1 Then T2 = T1; Else T2 = T1*EP + T2[1] * (1-EP); if dayindex <= 2 Then T3 = T2; Else T3 = T2*EP + T3[1] * (1-EP); TEMA82 = (3 * T1) - (3 * T2) + (T3); //장기최고저테마값 끝************************************************** //초장기최고저테마값 시작************************************************** if dayindex+1 < 초장기봉기간 Then{ var91 = DayHigh; var92 = DayLow; } Else{ var91 = highest(H,초장기봉기간); var92 = Lowest(L,초장기봉기간); } value91 = (var91 - var92)/2+var92; eEp = 2/(LENGTH2+1); if dayindex == 0 Then tT1 = value91; Else tT1 = value91*eEP + tT1[1] * (1-eEP); if dayindex <= 1 Then tT2 = tT1; Else tT2 = tT1*eEP + tT2[1] * (1-eEP); if dayindex <= 2 Then tT3 = tT2; Else tT3 = tT2*eEP + tT3[1] * (1-eEP); TEMA92 = (3 * tT1) - (3 * tT2) + (tT3); //초장기최고저테마값 끝************************************************** if sdate != sdate[1] Then Condition3 = false; Condition1 = highest(h,변동기간) >= lowest(L,변동기간)*(1+(변동치/100)); //Condition2= CountIF(TEMA92==TEMA92[1],30) == 30 ; if dayindex >= 60 and stime <143000 and dayPL < value6 then{ if CountIF(TEMA92 >=TEMA92[1]+초장기전봉차,연속봉수) == 연속봉수 then { buy("b"); } if CountIF(TEMA92 <=TEMA92[1]-초장기전봉차,연속봉수) == 연속봉수 then { Sell("s"); } } if dayindex >= 60 and sTime>=143000 and stime <150300 then{ if CountIF(TEMA92 >=TEMA92[1]+초장기전봉차,연속봉수) == 연속봉수 and MarketPosition==-1 then { ExitShort("xs"); } if CountIF(TEMA92 <=TEMA92[1]-초장기전봉차,연속봉수) == 연속봉수 and MarketPosition==1 then { ExitLong("xb"); } } //시간청산------------------------------------------------------------ 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(150300); } if MarketPosition == 1 Then{ ExitLong("bxx",AtStop,EntryPrice+(-(value6)-(PLR))); } if MarketPosition == -1 Then{ ExitShort("sxx",AtStop,EntryPrice+((value6)+(PLR))); } 포지션이 있을때 5개봉 완성되는데 20초 이상 걸리면 청산만하고 진입은 안하게해주시고 포지션이 없을때 5개봉 완성되는데 20초 이상 걸리면 신규진입을 안하게 고처주세요 수고하세요