커뮤니티
아래의 수식을 예스로 변환 부탁합니다.
2007-07-17 02:26:20
1123
글번호 13081
Len1=10
s1=0.36
s2=2.7
'array 이용 추세선 구하기
Set hvalue=Arrays(10,2)
Set lvalue=Arrays(10,2)
If shba(1,high,len1,len1)=len1 Then '스윙고가형성 봉이 이전 len1봉째라면
Var1=999999 'var1 초기화
For i = 9 To 1 Step - 1
hvalue(i,0)=hvalue(i-1,0) 'hvalue(n,0) 값 설정
hvalue(i,1)=hvalue(i-1,1) 'hvalue(n,1) 값 설정
Next
hvalue(0,0)=shva(1,high,len1,len1) '스윙고가값 할당
hvalue(0,1)=barnum 'barnum할당
For j = 1 To 9
If hvalue(j,0)>hvalue(0,0) Then 'j값을 증가시키며 hvalue(0,0)과 비교해서
Var1=j 'var1 결정
j=11
End If
Next
End If
If Var1<=10 Then
If (hvalue(0,1)-hvalue(Var1,1))* shba(1,high,len1,len1)<>0 Then
Var10=(hvalue(0,0)-hvalue(Var1,0))/(hvalue(0,1)-hvalue(Var1,1)) _
* shba(1,high,len1,len1)+hvalue(0,0) '추세선
End If
Else
Var10=999999
End If
If slba(1,low,len1,len1)=len1 Then '스윙저가형성 봉이 이전 len1봉째라면
Var2=999999
For i = 9 To 1 Step - 1
lvalue(i,0)=lvalue(i-1,0) 'lvalue(n,0) 값 설정
lvalue(i,1)=lvalue(i-1,1) 'lvalue(n,1) 값 설정
Next
lvalue(0,0)=slva(1,low,len1,len1) '스윙저가값 할당
lvalue(0,1)=barnum 'barnum할당
For j = 1 To 9
If lvalue(j,0)<lvalue(0,0) Then 'j값을 증가시키며 lvalue(0,0)과 비교해서
Var2=j 'var2값 결정
j=11
End If
Next
End If
If Var2<=10 Then 'var2 값이 10이하이면
If (lvalue(0,1)-lvalue(Var2,1))* slba(1,low,len1,len1)<>0 Then
Var11=(lvalue(0,0)-lvalue(Var2,0))/(lvalue(0,1)-lvalue(Var2,1)) _
* slba(1,low,len1,len1)+lvalue(0,0) '추세선
End If
Else
Var11=99999
End If
If tdate<>tdate(1) Then
Var50=currententrynum
End If
'하루에 한번 진입
If currententrynum-var50 = 0 Then
If ttime<1500 Then
If high<var10 And Var1<=10 Then
Call buy("매수",Atstop,Def,Var10) '지정가 상향돌파시 매수
End If
If low>var11 And Var2<=10 Then
Call sell("매도",Atstop,Def,Var11) '지정가 하향돌파시 매도
End If
Call sell("매도1",Atstop,Def,opend-(highd(1)-lowd(1))*S1)'지정가 상향돌파시 매수
Call buy("매수1",Atstop,Def,opend+(highd(1)-lowd(1))*S1)'지정가 하향돌파시 매도
End If
End If
'청산
If position<>0 Then
Call exitlong("매수추적",Atstop,hhv(1,high,barnumsinceentry+1)-atr(10)*s2)
Call exitshort("매도추적",Atstop,llv(1,low,barnumsinceentry+1)+atr(10)*s2)
End If
답변 1
예스스탁 예스스탁 답변
2007-07-18 09:40:12
안녕하세요
예스스탁입니다.
input : Len1(10),s1(0.36),s2(2.7);
var : ii(0),j(0),var11(0),var50(0);
array : Hvalue1[10](0),Hvalue2[10](0),Lvalue1[10](0),Lvalue2[10](0);
//array 이용 추세선 구하기
If Swinghighbar(1,high,len1,len1,200) == len1 Then{ //스윙고가형성 봉이 이전 len1봉째라면
Var1=999999; //var1 초기화
For ii = 9 downto 1 {
hvalue1[ii] = hvalue1[ii][1]; //hvalue(n,0) 값 설정
hvalue2[ii] = hvalue2[ii][1]; //hvalue(n,1) 값 설정
}
hvalue1[0] = Swinghighbar(1,high,len1,len1,200); //스윙고가값 할당
hvalue2[0] = index; // barnum할당
For j = 1 To 9 {
If hvalue1[j] > hvalue1[0] Then{ //j값을 증가시키며 hvalue(0,0)과 비교해서
Var1 = j; //var1 결정
j = 11;
}
}
}
If Var1 <= 10 Then{
If (hvalue2[0] - hvalue2[Var1])*Swinghighbar(1,high,len1,len1,200) <> 0 Then{
Var10 = (hvalue2[0] - hvalue2[Var1])/(hvalue2[0]-hvalue2[Var1])
*Swinghighbar(1,high,len1,len1,200)+hvalue1[0];//추세선
}
Else
Var10=999999;
}
If Swinglowbar(1,low,len1,len1,200) == len1 Then{ //스윙저가형성 봉이 이전 len1봉째라면
Var2=999999;
For ii = 9 downTo 1 {
lvalue1[ii] = lvalue1[ii][1]; // lvalue(n,0) 값 설정
lvalue2[ii] = lvalue2[ii][1]; // lvalue(n,1) 값 설정
}
lvalue1[0] = Swinglowbar(1,low,len1,len1,200); //스윙저가값 할당
lvalue2[0] = index; //barnum할당
For j = 1 To 9 {
If lvalue1[j] < lvalue1[0] Then{ //j값을 증가시키며 lvalue(0,0)과 비교해서
Var2 = j; //var2값 결정
j = 11;
}
}
}
If Var2 <= 10 Then{ //var2 값이 10이하이면
If (lvalue2[0]-lvalue2[Var2])* Swinglowbar(1,low,len1,len1,200) <> 0 Then
Var11 = (lvalue1[0]-lvalue1[Var2])/(lvalue2[0]-lvalue2[Var2])
* Swinglowbar(1,low,len1,len1,200) +lvalue1[0]; //추세선
Else
Var11 = 99999;
}
If date <> date[1] Then{
Var50 = Barssinceentry();
}
//하루에 한번 진입
If Barssinceentry()-var50 == 0 Then{
If stime<150000 Then{
If high<var10 And Var1<=10 Then{
buy("매수",Atstop,Def,Var10); //지정가 상향돌파시 매수
}
If low>var11 And Var2<=10 Then {
sell("매도",Atstop,Def,Var11); //지정가 하향돌파시 매도
}
sell("매도1",Atstop,dayopen()-(dayhigh(1)-daylow(1))*S1);//지정가 상향돌파시 매수
buy("매수1",Atstop,dayopen()+(dayhigh(1)-daylow(1))*S1);//지정가 하향돌파시 매도
}
}
//청산
If marketposition() <> 0 Then{
exitlong("매수추적",Atstop,nthhighest(1,high,Barssinceentry()+1)-atr(10)*s2);
exitshort("매도추적",Atstop,nthlowest(1,low,Barssinceentry()+1)+atr(10)*s2);
}
즐거운 하루되세요
> 경복궁 님이 쓴 글입니다.
> 제목 : 아래의 수식을 예스로 변환 부탁합니다.
> Len1=10
s1=0.36
s2=2.7
'array 이용 추세선 구하기
Set hvalue=Arrays(10,2)
Set lvalue=Arrays(10,2)
If shba(1,high,len1,len1)=len1 Then '스윙고가형성 봉이 이전 len1봉째라면
Var1=999999 'var1 초기화
For i = 9 To 1 Step - 1
hvalue(i,0)=hvalue(i-1,0) 'hvalue(n,0) 값 설정
hvalue(i,1)=hvalue(i-1,1) 'hvalue(n,1) 값 설정
Next
hvalue(0,0)=shva(1,high,len1,len1) '스윙고가값 할당
hvalue(0,1)=barnum 'barnum할당
For j = 1 To 9
If hvalue(j,0)>hvalue(0,0) Then 'j값을 증가시키며 hvalue(0,0)과 비교해서
Var1=j 'var1 결정
j=11
End If
Next
End If
If Var1<=10 Then
If (hvalue(0,1)-hvalue(Var1,1))* shba(1,high,len1,len1)<>0 Then
Var10=(hvalue(0,0)-hvalue(Var1,0))/(hvalue(0,1)-hvalue(Var1,1)) _
* shba(1,high,len1,len1)+hvalue(0,0) '추세선
End If
Else
Var10=999999
End If
If slba(1,low,len1,len1)=len1 Then '스윙저가형성 봉이 이전 len1봉째라면
Var2=999999
For i = 9 To 1 Step - 1
lvalue(i,0)=lvalue(i-1,0) 'lvalue(n,0) 값 설정
lvalue(i,1)=lvalue(i-1,1) 'lvalue(n,1) 값 설정
Next
lvalue(0,0)=slva(1,low,len1,len1) '스윙저가값 할당
lvalue(0,1)=barnum 'barnum할당
For j = 1 To 9
If lvalue(j,0)<lvalue(0,0) Then 'j값을 증가시키며 lvalue(0,0)과 비교해서
Var2=j 'var2값 결정
j=11
End If
Next
End If
If Var2<=10 Then 'var2 값이 10이하이면
If (lvalue(0,1)-lvalue(Var2,1))* slba(1,low,len1,len1)<>0 Then
Var11=(lvalue(0,0)-lvalue(Var2,0))/(lvalue(0,1)-lvalue(Var2,1)) _
* slba(1,low,len1,len1)+lvalue(0,0) '추세선
End If
Else
Var11=99999
End If
If tdate<>tdate(1) Then
Var50=currententrynum
End If
'하루에 한번 진입
If currententrynum-var50 = 0 Then
If ttime<1500 Then
If high<var10 And Var1<=10 Then
Call buy("매수",Atstop,Def,Var10) '지정가 상향돌파시 매수
End If
If low>var11 And Var2<=10 Then
Call sell("매도",Atstop,Def,Var11) '지정가 하향돌파시 매도
End If
Call sell("매도1",Atstop,Def,opend-(highd(1)-lowd(1))*S1)'지정가 상향돌파시 매수
Call buy("매수1",Atstop,Def,opend+(highd(1)-lowd(1))*S1)'지정가 하향돌파시 매도
End If
End If
'청산
If position<>0 Then
Call exitlong("매수추적",Atstop,hhv(1,high,barnumsinceentry+1)-atr(10)*s2)
Call exitshort("매도추적",Atstop,llv(1,low,barnumsinceentry+1)+atr(10)*s2)
End If
다음글