커뮤니티

문의드립니다

프로필 이미지
파파리리
2016-05-03 12:36:21
119
글번호 97675
답변완료
이상합니다 매수매도신호가 자주일어난는 로직인데 진입을 하는날도 있고 진입을 하지 않는날도 있습니다 BL 과 SP으로 매매가 종료하고나면 몇일동않은 진입을 못하고있습니다 확인부탁드립니다 input : 진입시작시간(90100),진입종료시간(143000),당일청산시간(150000),하루수익(0.80),목표수익(0.30),aa(20),P(20),aal(20),Pl(20),Period1(2); var : cnt(0),count(0),count1(0),cntl(0),countl(0),countl1(0),HH(0),HV(0),HHl(0),HVl(0); var : Tcond(false),NP(0),NP1(0),dayPL(0),Xcond(false); NP = NetProfit; if sTime == 진입시작시간 or (stime == 진입시작시간 and stime[1] < 진입시작시간) Then{ Tcond = true; NP1 = NP[1]; Xcond = false; } if sTime == 진입종료시간 or (stime == 진입종료시간 and stime[1] < 진입종료시간) Then{ Tcond = False; } dayPL = NP-NP1; if TotalTrades > TotalTrades[1] and (IsExitName("BP",1) or IsExitName("BL",1) or IsExitName("SP",1) or IsExitName("SL",1)) Then Xcond = true; if Tcond == true and Xcond == false Then{ count= 0; For cnt =0 to aa Begin if h == h[cnt] Then count = count + 1; count1 = count + h; end var1 = (count); HH = var1; HV = H; for cnt = 0 to P-1{ if var1[cnt] > HH Then{ HH = var1[cnt]; HV = H[cnt]; } } } countl= 0; For cntl =0 to aal Begin if l == l[cntl] Then countl = countl + 1; countl1 = countl + l; end var2 = (countl); HHl = var2; HVl = l; for cntl = 0 to Pl-1{ if var2[cntl] > HHl Then{ HHl = var2[cntl]; HVl = l[cntl]; } } var3 = ma(h,Period1); var4 = ma(l,Period1); if crossup(var4,hv) and Xcond == false Then{ buy(); } if CrossDown(var3,hvl) and Xcond == false Then{ sell(); } if MarketPosition == 1 Then{ ExitLong("BP",AtLimit,EntryPrice+하루수익-daypl); } if MarketPosition == -1 Then{ ExitShort("SP",AtLimit,EntryPrice-하루수익+daypl); } SetStopProfittarget(목표수익,PointStop); SetStopEndofday(당일청산시간);
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2016-05-03 16:34:33

안녕하세요 예스스탁입니다. 지정한 시간의 봉이 없으면 초기화가 되지 않게 작성이 되어 있어 수식의 시간지정 부분을 수정했습니다. 해당 부분외에 따로 수식에서 수정해 드릴만한 부분은 보이지 않습니다. 수식은 사용자분이 응용해서 사용한다는 전제로 답변을 드립니다. 식 독해하셔서 식 내용 이해하시고 응용해 수정보완해 가셔야 합니다. input : 진입시작시간(90100),진입종료시간(143000),당일청산시간(150000),하루수익(0.80),목표수익(0.30),aa(20),P(20),aal(20),Pl(20),Period1(2); var : cnt(0),count(0),count1(0),cntl(0),countl(0),countl1(0),HH(0),HV(0),HHl(0),HVl(0); var : Tcond(false),NP(0),NP1(0),dayPL(0),Xcond(false); NP = NetProfit; if sTime == 진입시작시간 or (stime > 진입시작시간 and stime[1] < 진입시작시간) Then{ Tcond = true; NP1 = NP[1]; Xcond = false; } if sTime == 진입종료시간 or (stime > 진입종료시간 and stime[1] < 진입종료시간) Then{ Tcond = False; } dayPL = NP-NP1; if TotalTrades > TotalTrades[1] and (IsExitName("BP",1) or IsExitName("BL",1) or IsExitName("SP",1) or IsExitName("SL",1)) Then Xcond = true; if Tcond == true and Xcond == false Then{ count= 0; For cnt =0 to aa Begin if h == h[cnt] Then count = count + 1; count1 = count + h; end var1 = (count); HH = var1; HV = H; for cnt = 0 to P-1{ if var1[cnt] > HH Then{ HH = var1[cnt]; HV = H[cnt]; } } } countl= 0; For cntl =0 to aal Begin if l == l[cntl] Then countl = countl + 1; countl1 = countl + l; end var2 = (countl); HHl = var2; HVl = l; for cntl = 0 to Pl-1{ if var2[cntl] > HHl Then{ HHl = var2[cntl]; HVl = l[cntl]; } } var3 = ma(h,Period1); var4 = ma(l,Period1); if crossup(var4,hv) and Xcond == false Then{ buy(); } if CrossDown(var3,hvl) and Xcond == false Then{ sell(); } if MarketPosition == 1 Then{ ExitLong("BP",AtLimit,EntryPrice+하루수익-daypl); } if MarketPosition == -1 Then{ ExitShort("SP",AtLimit,EntryPrice-하루수익+daypl); } SetStopProfittarget(목표수익,PointStop); SetStopEndofday(당일청산시간); 즐거운 하루되세요 > 파파리리 님이 쓴 글입니다. > 제목 : 문의드립니다 > 이상합니다 매수매도신호가 자주일어난는 로직인데 진입을 하는날도 있고 진입을 하지 않는날도 있습니다 BL 과 SP으로 매매가 종료하고나면 몇일동않은 진입을 못하고있습니다 확인부탁드립니다 input : 진입시작시간(90100),진입종료시간(143000),당일청산시간(150000),하루수익(0.80),목표수익(0.30),aa(20),P(20),aal(20),Pl(20),Period1(2); var : cnt(0),count(0),count1(0),cntl(0),countl(0),countl1(0),HH(0),HV(0),HHl(0),HVl(0); var : Tcond(false),NP(0),NP1(0),dayPL(0),Xcond(false); NP = NetProfit; if sTime == 진입시작시간 or (stime == 진입시작시간 and stime[1] < 진입시작시간) Then{ Tcond = true; NP1 = NP[1]; Xcond = false; } if sTime == 진입종료시간 or (stime == 진입종료시간 and stime[1] < 진입종료시간) Then{ Tcond = False; } dayPL = NP-NP1; if TotalTrades > TotalTrades[1] and (IsExitName("BP",1) or IsExitName("BL",1) or IsExitName("SP",1) or IsExitName("SL",1)) Then Xcond = true; if Tcond == true and Xcond == false Then{ count= 0; For cnt =0 to aa Begin if h == h[cnt] Then count = count + 1; count1 = count + h; end var1 = (count); HH = var1; HV = H; for cnt = 0 to P-1{ if var1[cnt] > HH Then{ HH = var1[cnt]; HV = H[cnt]; } } } countl= 0; For cntl =0 to aal Begin if l == l[cntl] Then countl = countl + 1; countl1 = countl + l; end var2 = (countl); HHl = var2; HVl = l; for cntl = 0 to Pl-1{ if var2[cntl] > HHl Then{ HHl = var2[cntl]; HVl = l[cntl]; } } var3 = ma(h,Period1); var4 = ma(l,Period1); if crossup(var4,hv) and Xcond == false Then{ buy(); } if CrossDown(var3,hvl) and Xcond == false Then{ sell(); } if MarketPosition == 1 Then{ ExitLong("BP",AtLimit,EntryPrice+하루수익-daypl); } if MarketPosition == -1 Then{ ExitShort("SP",AtLimit,EntryPrice-하루수익+daypl); } SetStopProfittarget(목표수익,PointStop); SetStopEndofday(당일청산시간);