커뮤니티
수식변환부탁드립니다.
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
다음글