커뮤니티
수식 요청 제질문
2007-05-17 05:24:11
1051
글번호 12601
안녕하세요 질문하신것 맞습니다 추세매매수식 참고하시고 수식 수정부탁 합니다
cj증권 지식이 부족해서 타사꺼로 예)를 드립니다 이해바랍니다
내용은 배열을 사용해서 10개의 스윙고저(swing high/low)를 검색하여 낮아지는 고가를
이용해서 하락 추세선을 ,높아지는 저가를 이용해서 상승추세선을 작성하여,
고가가 하락 추세선을 상향 돌파하면 매수,저가가 상승추세선을 하향 돌파하면 매도
하는전략입니다. 여기에 Rangebreak 돌파 전략을 동시에 진입 전략으로 된겁니다
[내용]
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
답변은 yang 12133 @ empal.com 으로 감사합니다
답변 1
예스스탁 예스스탁 답변
2007-05-17 11:29:20
> CJ_yang1130 님이 쓴 글입니다.
> 제목 : 수식 요청 제질문
>
안녕하세요 질문하신것 맞습니다 추세매매수식 참고하시고 수식 수정부탁 합니다
cj증권 지식이 부족해서 타사꺼로 예)를 드립니다 이해바랍니다
내용은 배열을 사용해서 10개의 스윙고저(swing high/low)를 검색하여 낮아지는 고가를
이용해서 하락 추세선을 ,높아지는 저가를 이용해서 상승추세선을 작성하여,
고가가 하락 추세선을 상향 돌파하면 매수,저가가 상승추세선을 하향 돌파하면 매도
하는전략입니다. 여기에 Rangebreak 돌파 전략을 동시에 진입 전략으로 된겁니다
[내용]
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
답변은 yang 12133 @ empal.com 으로 감사합니다
다음글
이전글