커뮤니티

식 부탁.

프로필 이미지
송사범
2011-06-22 17:19:04
602
글번호 40054
답변완료
if sTime==100000 Then{ Var1=H; Var2=data3(H); } if sTime==103000 Then{ Var3=H; Var4=data3(H); } If Data3(c)>var2 and Data3(c)>var4 and stime>103000 Then{ var5=BarIndex; Var6=sDate; } If Data3(sDate!=sDate[1]) Then cond3=False; If data3(sTime>103000 and sTime<=120000 and c<2.0 and BarIndex>=Var5) and sDate==Var6 Then cond3=True; If MarketPosition() == 0 and count<1 and stime>103000 and stime<=120000 Then { If c>1.5 and c<=2.0 and c>Var1 and c>Var3 and c>o Then { If c<data2(c) and c<data3(c) and cond3==False Then buy("매수",onclose,DEF,2); } } --------------------------------------------------------------------------------- 위 식에서 data3(c)가 20만원을 상회한 적이 없었는데도 매수진입이 발생하는데 무엇 이 잘못된 것인지 답글 부탁드립니다.
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2011-06-23 14:18:04

안녕하세요 예스스탁입니다. var5와 var6이 특별한 제어가 없어 해당시간이후에 조건만 만족하면 값이 갱신되므로 최초 한번만 저장하도록 하고 수식에 사용되는 내부변수를 각 주기를 &#51922;아가도록 변경했습니다. 주석을 참고하시기 바랍니다. var : cond3(false,data3),cond4(false,data3); var : D1H1(0,data1),D1H2(0,data1),D3H1(0,data3),D3H2(0,data3); #data3의 첫봉에 각변수 false로 초기화 If Data3(sDate!=sDate[1]) Then{ cond3 = False; cond4 = False; } #data1기준 10시 10시30분 고가 저장 if data1(sTime==100000) Then D1H1=data1(H); if data1(sTime==103000) Then D1H2=data1(H); #data3기준 10시 10시30분 고가 저장 if data3(sTime==100000) Then D3H1 =data3(H); if data3(sTime==103000) Then D3H2 = data3(H); #data3-10시 30분이후 종가가 10시와 10시 30분 고가보다 큰봉 나오면 cond4 true If Data3(c > D3H1 and c > D3H2 and stime>103000) and Cond4 == false Then Cond4 = true; # cond4가 ture이고 12시이전에 종가가 2.0보다 큰봉이 나오면 cond3은 true if Cond4 == true and data3(stime <= 120000 and C >= 2.0) Then cond3 = true; If MarketPosition == 0 and count<1 and data1(stime>103000 and stime<=120000) Then { If data1(c>1.5 and c<=2.0 and c>D1H1 and c > D1H2 and c > o) Then { If c<data2(c) and c<data3(c) and cond3==true Then #cond3 true일때 다른조건 만족하면 진입 buy("매수",onclose,DEF,2); } } 즐거운 하루되세요 > 송사범 님이 쓴 글입니다. > 제목 : 식 부탁. > if sTime==100000 Then{ Var1=H; Var2=data3(H); } if sTime==103000 Then{ Var3=H; Var4=data3(H); } If Data3(c)>var2 and Data3(c)>var4 and stime>103000 Then{ var5=BarIndex; Var6=sDate; } If Data3(sDate!=sDate[1]) Then cond3=False; If data3(sTime>103000 and sTime<=120000 and c<2.0 and BarIndex>=Var5) and sDate==Var6 Then cond3=True; If MarketPosition() == 0 and count<1 and stime>103000 and stime<=120000 Then { If c>1.5 and c<=2.0 and c>Var1 and c>Var3 and c>o Then { If c<data2(c) and c<data3(c) and cond3==False Then buy("매수",onclose,DEF,2); } } --------------------------------------------------------------------------------- 위 식에서 data3(c)가 20만원을 상회한 적이 없었는데도 매수진입이 발생하는데 무엇 이 잘못된 것인지 답글 부탁드립니다.