커뮤니티

수식변환부탁드립니다.

프로필 이미지
청각
2008-09-10 22:17:46
796
글번호 16989
답변완료
ct에나온 예제인데 yt언어로 변환부탁드립니다. s1(0.37) s2(2.7) len(0.88) Var1=highd(1)-lowd(1) '전일고저차 Var2=max(highd(1),highd(2)) '전일고가와 2일전고가중 큰값 Var3=min(lowd(1),lowd(2)) '전일저가와 2일전저가중 작은 값 If tdate<>Tdate(1) Then Var50=currententrynum Var10=Atr(20,1)*len1 End If If tdate<>Tdate(1) Then '날짜가 바뀌면 초기화 Var30=0 Var31=0 Cond1=False Cond2=False Else If close>var2+var10 Then '종가가 지정값보다 크면 Cond1=True End If If close <var3-var10 Then '종가가 지정값보다 작으면 Cond2=True End If '종가가 지정가보다 크고 종가가 지정가보다 작고 초기화조건이면 If close>=var2-var10 And close<=var2+var10 And Cond1=False Then Var30=1 Else Var30=0 End If '종가가 지정가보다 크고 종가가 지정가보다 작고 초기화조건이면 If close>=var3-var10 And close<=var3+var10 And Cond2=False Then Var31=1 Else Var31=0 End If End If '1번째 진입조건 If currententrynum-var50=0 Then If ttime<1500 Then If Var31=1 Then If high<var3+var10 Then '고가가 지정가 이하이면 Call buy("매수",Atstop,Def,Var3+var10)'지정가 상향돌파시 매수 Else Call buy("매수",Atstop,Def,hhv(1,high,2))'지정가 상향돌파시 매수 End If End If If Var30=1 Then If low>var2-var10 Then '저가가 지정가 이상이면 Call sell("매도",Atstop,Def,Var2-var10)'지정가 하향돌파시 매도 Else Call sell("매도",Atstop,Def,llv(1,low,2))'지정가 하향돌파시 매도 End If End If Call buy("매수1",Atstop,Def,opend+var1*s1) '지정가 상향돌파시 매수 Call sell("매도1",Atstop,Def,opend-var1*S1) '지정가 하향돌파시 매도 End If End If '청산 If position<>0 Then Call exitlong("매수추적",Atstop,hhv(1,high,barnumsinceentry+1)-atr(20)*s2) Call exitshort("매도추적",Atstop,llv(1,low,barnumsinceentry+1)+atr(20)*S2) End If If position=1 And entryname="매수" Then'진입명이 '매수'일때만 If low>var2-var10 Then Call exitlong("청산1",Atstop,Var2-var10) End If End If If position=-1 And entryname="매도" Then'진입명이 '매도'일때만 If high<var3+var10 Then Call exitshort("청산1",Atstop,Var3+var10) End If End If
시스템
답변 1
프로필 이미지

예스스탁 예스스탁 답변

2008-09-11 09:06:45

안녕하세요 예스스탁입니다. input : s1(0.37),s2(2.7),len(0.88),Len1(1); var : currententrynum(0),cond1(False),cond2(False); Var1=highd(1)-lowd(1); // '전일고저차 Var2=max(highd(1),highd(2));// '전일고가와 2일전고가중 큰값 Var3=min(lowd(1),lowd(2));// '전일저가와 2일전저가중 작은 값 If sdate <> sdate[1] Then{ Var50=currententrynum; Var10=Atr(20)[1]*len1; } if MarketPosition() == 0 Then //무포지션 상태에서는 currententrynum = TotalTrades(); //청산종결된 모든 거래 횟수 저장 Else currententrynum = TotalTrades()+1;//포지션이 있는 상태에서는 청산종결된 모든 거래의 횟수에 +1 If sdate <> sdate[1] Then{// '날짜가 바뀌면 초기화 Var30=0; Var31=0; Cond1=False ; Cond2=False ; } Else{ If close>var2+var10 Then // '종가가 지정값보다 크면 Cond1=True; If close <var3-var10 Then // '종가가 지정값보다 작으면 Cond2=True; //종가가 지정가보다 크고 종가가 지정가보다 작고 초기화조건이면 If close>=var2-var10 And close<=var2+var10 And Cond1==False Then Var30=1; Else Var30=0 ; //'종가가 지정가보다 크고 종가가 지정가보다 작고 초기화조건이면 If close>=var3-var10 And close<=var3+var10 And Cond2==False Then Var31=1; Else Var31=0 ; } //'1번째 진입조건 If currententrynum-var50==0 Then{ If stime < 150000 Then{ If Var31=1 Then{ If high<var3+var10 Then //'고가가 지정가 이하이면 buy("매수1",Atstop,Var3+var10);//'지정가 상향돌파시 매수 Else buy("매수2",Atstop,Highest(high,2));//'지정가 상향돌파시 매수 } If Var30=1 Then { If low>var2-var10 Then //'저가가 지정가 이상이면 sell("매도1",Atstop,Var2-var10);//'지정가 하향돌파시 매도 Else sell("매도2",Atstop,Lowest(low,2));//'지정가 하향돌파시 매도 } buy("매수3",Atstop,DayOpen(0)+var1*s1);// '지정가 상향돌파시 매수 sell("매도3",Atstop,DayOpen(0)-var1*S1);// '지정가 하향돌파시 매도 } } //'청산 If MarketPosition() <> 0 Then{ exitlong("매수추적",Atstop,Highest(high,BarsSinceEntry+1)-atr(20)*s2) ; exitshort("매도추적",Atstop,Lowest(low,BarsSinceEntry+1)+atr(20)*S2); } If MarketPosition() == 1 And isentryname("매수") == True Then{//'진입명이 '매수'일때만 If low>var2-var10 Then{ exitlong("매수청산1",Atstop,Var2-var10); } } If MarketPosition() == -1 And IsEntryName("매도") == True Then{//'진입명이 '매도'일때만 If high<var3+var10 Then{ exitshort("매도청산1",Atstop,Var3+var10); } } 즐거운 하루되세요 > 청각 님이 쓴 글입니다. > 제목 : 수식변환부탁드립니다. > ct에나온 예제인데 yt언어로 변환부탁드립니다. s1(0.37) s2(2.7) len(0.88) Var1=highd(1)-lowd(1) '전일고저차 Var2=max(highd(1),highd(2)) '전일고가와 2일전고가중 큰값 Var3=min(lowd(1),lowd(2)) '전일저가와 2일전저가중 작은 값 If tdate<>Tdate(1) Then Var50=currententrynum Var10=Atr(20,1)*len1 End If If tdate<>Tdate(1) Then '날짜가 바뀌면 초기화 Var30=0 Var31=0 Cond1=False Cond2=False Else If close>var2+var10 Then '종가가 지정값보다 크면 Cond1=True End If If close <var3-var10 Then '종가가 지정값보다 작으면 Cond2=True End If '종가가 지정가보다 크고 종가가 지정가보다 작고 초기화조건이면 If close>=var2-var10 And close<=var2+var10 And Cond1=False Then Var30=1 Else Var30=0 End If '종가가 지정가보다 크고 종가가 지정가보다 작고 초기화조건이면 If close>=var3-var10 And close<=var3+var10 And Cond2=False Then Var31=1 Else Var31=0 End If End If '1번째 진입조건 If currententrynum-var50=0 Then If ttime<1500 Then If Var31=1 Then If high<var3+var10 Then '고가가 지정가 이하이면 Call buy("매수",Atstop,Def,Var3+var10)'지정가 상향돌파시 매수 Else Call buy("매수",Atstop,Def,hhv(1,high,2))'지정가 상향돌파시 매수 End If End If If Var30=1 Then If low>var2-var10 Then '저가가 지정가 이상이면 Call sell("매도",Atstop,Def,Var2-var10)'지정가 하향돌파시 매도 Else Call sell("매도",Atstop,Def,llv(1,low,2))'지정가 하향돌파시 매도 End If End If Call buy("매수1",Atstop,Def,opend+var1*s1) '지정가 상향돌파시 매수 Call sell("매도1",Atstop,Def,opend-var1*S1) '지정가 하향돌파시 매도 End If End If '청산 If position<>0 Then Call exitlong("매수추적",Atstop,hhv(1,high,barnumsinceentry+1)-atr(20)*s2) Call exitshort("매도추적",Atstop,llv(1,low,barnumsinceentry+1)+atr(20)*S2) End If If position=1 And entryname="매수" Then'진입명이 '매수'일때만 If low>var2-var10 Then Call exitlong("청산1",Atstop,Var2-var10) End If End If If position=-1 And entryname="매도" Then'진입명이 '매도'일때만 If high<var3+var10 Then Call exitshort("청산1",Atstop,Var3+var10) End If End If