커뮤니티
부탁드립니다
2011-01-26 21:03:52
642
글번호 35311
안녕하세요.
선물시스템식을 참조종목으로 사용하여 옵션매수전용 시스템식으로 구분하고자
합니다. 선물매수는 call옵션 매수전용식으로, 선물매도는 put옵션 매수전용식으로
작성 부탁드립니다.
선물전략식이 3가지로 이루어져 있읍니다.
한번에 많은 변환부탁드려 죄송합니다.
감사합니다.새해복많이받으세요.
===============================================================================
1.선물전략식(피봇시스템)
========================
input : len1(0.1),len(1.1), n(20),method(2);
var : CurrentEntryNum(0);
if date<>date[1] Then { //날이 바뀐 첫봉에서
var50 = TotalTrades; //진입횟수 체크
}
CurrentEntryNum = iff(marketposition == 0,TotalTrades, TotalTrades+1 );
//method에 따른 피봇라인 설정
If method==1 Then {
Var10 = (dayHigh(1) + dayLow(1) + dayClose(1)) / 3; //피봇
Var11= Var10 * 2 - dayLow(1);//1차 저항
Var12= Var10 + dayHigh(1) - dayLow(1); //2차저항
Var9= Var10 * 2 - dayHigh(1); //1차 지지
Var8= Var10 - dayHigh(1) + dayLow(1); //2차지지
}
Else {
Var10 = (dayHigh(1) + dayLow(1) + dayClose(1)+dayOpen(1)) / 4; //피봇
Var11= Var10 * 2 - dayLow(1);//1차 저항
Var12= Var10 + dayHigh(1) - dayLow(1);//2차저항
Var9= Var10 * 2 - dayHigh(1);//1차 지지
Var8= Var10 - dayHigh(1) + dayLow(1);//2차지지
}
Var20=var11-var10;
Var21=var10-var9;
Condition1 = iff(marketposition == 0,date==entrydate(1), date==entrydate(0) ) and
iff(marketposition == 0,marketposition(1)==1, marketposition(0)==1 );
Condition2 = iff(marketposition == 0,date==entrydate(1), date==entrydate(0) ) and
iff(marketposition == 0,marketposition(1)==-1, marketposition(0)==-1 );
//진입
If stime<150000 Then {
If Condition1==False And currententrynum-var50<=1 Then
buy("매수",Atstop,dayOpen+var20*len1);//지정가 상향돌파시 매수
If Condition2==False And currententrynum-var50<=1 Then
sell("매도",Atstop,dayOpen-var21*len1);//지정가 하향돌파시 매도
}
//청산
If marketposition == 1 Then {
exitlong("매수청산",Atstop,highest(high,barssinceentry+1)-atr(n)*len);
}
if MarketPosition == -1 then{
exitshort("매도청산",Atstop,lowest(low,barssinceentry+1)+atr(n)*len);
}
setstopendofday(1500);
#########################################################################
2.선물전략식(tr 시스템식)
=========================
input : len1(0.1), len(2.7),n(20);
var : count(0),cnt(0);
//TR설정
Var1=dayhigh(1);
Var2=daylow(1);
Var3=dayClose(2);
Var10=max(Var1,Var3)-min(Var2,Var3);
#당일 진입횟수 계산
Count = 0 ;
for cnt = 0 to 10 {
if EntryDate(cnt) == sdate then
Count = Count + 1;
}
condition1= date==exitdate(1) And marketposition(1)==1;
condition2= date==exitdate(1) And marketposition(1)==-1;
//진입
If stime<150000 then {
If condition1==False and MarketPosition <> 1 and count <2 then {
buy("매수",Atstop,dayopen+var10*len1);
}
If condition2==False and MarketPosition <> -1 and count <2 then {
sell("매도",Atstop,dayopen-var10*len1);
}
}
//청산
If marketposition == 1 Then {
exitlong("매수청산",Atstop,highest(high,barssinceentry+1)-atr(n)*len);
}
if MarketPosition == -1 then{
exitshort("매도청산",Atstop,lowest(low,barssinceentry+1)+atr(n)*len);
}
setstopendofday(1500);
###################################################################
3.선물전략식(max시스템)
======================
input : s1(0.1), s2(2.7),n(20);
var : count(0),cnt(0);
Var1=dayhigh(1);
Var2=dayclose(1);
Var3=dayLow(1);
Var4=dayclose(1);
//패턴설정
If abs(Var1-var4)>=abs(Var2-var3) then
Var10=abs(Var1-var4);
Else
Var10=abs(Var2-var3);
#당일 진입횟수 계산
Count = 0 ;
for cnt = 0 to 10 {
if EntryDate(cnt) == sdate then
Count = Count + 1;
}
condition1= sdate==exitdate(1) And marketposition(1)==1; condition2= sdate==exitdate(1) And marketposition(1)==-1:
If stime<150000 then {
If condition1==False and MarketPosition <> 1 and count <2 then {
buy("매수",Atstop,dayOpen+var10*S1);
}
If condition2==False and MarketPosition <> -1 and count <2 then {
sell("매도",Atstop,dayOpen-var10*S1);
}
}
//청산
If marketposition == 1 Then {
exitlong("매수청산",Atstop,highest(high,barssinceentry+1)-atr(n)*s2);
}
if MarketPosition == -1 then{
exitshort("매도청산",Atstop,lowest(low,barssinceentry+1)+atr(n)*s2);
}
setstopendofday(1500);
끝.
답변 1
예스스탁 예스스탁 답변
2011-01-27 11:11:47
안녕하세요
예스스탁입니다.
1, 피봇시스템(콜)
input : len1(0.1),len(1.1), n(20),method(2);
var : CurrentEntryNum(0);
var : va10(0,data2),va11(0,data2),va12(0,data2),va9(0,data2),va8(0,data2),va20(0,data2),va21(0,data2);
if date<>date[1] Then { //날이 바뀐 첫봉에서
var50 = TotalTrades; //진입횟수 체크
}
CurrentEntryNum = iff(marketposition == 0,TotalTrades, TotalTrades+1 );
//method에 따른 피봇라인 설정
If method==1 Then {
Va10 = data2((HighD(1) + LowD(1) + CloseD(1)) / 3); //피봇
Va11= data2(Va10 * 2 - LowD(1));//1차 저항
Va12= data2(Va10 + HighD(1) - LowD(1)); //2차저항
Va9 = data2(Va10 * 2 - HighD(1)); //1차 지지
Va8 = data2(Va10 - HighD(1) + LowD(1)); //2차지지
}
Else {
Va10 = data2((HighD(1) + LowD(1) + CloseD(1) + OpenD(1)) / 4); //피봇
Va11= data2(Va10 * 2 - LowD(1));//1차 저항
Va12= data2(Va10 + HighD(1) - LowD(1));//2차저항
Va9 = data2(Va10 * 2 - HighD(1));//1차 지지
Va8 = data2(Va10 - HighD(1) + LowD(1));//2차지지
}
Va20=va11-va10;
Va21=va10-va9;
Condition1 = iff(marketposition == 0,date==entrydate(1), date==entrydate(0) ) and
iff(marketposition == 0,marketposition(1)==1, marketposition(0)==1 );
Condition2 = iff(marketposition == 0,date==entrydate(1), date==entrydate(0) ) and
iff(marketposition == 0,marketposition(1)==-1, marketposition(0)==-1 );
//진입
If stime<150000 Then {
If MarketPosition == 0 And currententrynum-var50 < 1 and dayindex > 0 Then {
if data2(H >= OpenD(0)[1]+va20[1]*len1) Then
buy("매수");
}
If marketposition == 1 and BarsSinceEntry > 0 Then
If data2(L <= OpenD(0)[1]-va21[1]*len1) Then
ExitLong("매도");
}
var1 = data2(H);
If marketposition == 1 and BarsSinceEntry > 0 Then {
if data2(L) <= highest(var1,BarsSinceEntry+1)[1]-data2(ATR(N)[1]*len) Then
exitlong("매수청산");
}
setstopendofday(1500);
1. 피봇시스템(풋)
input : len1(0.1),len(1.1), n(20),method(2);
var : CurrentEntryNum(0);
var : va10(0,data2),va11(0,data2),va12(0,data2),va9(0,data2),va8(0,data2),va20(0,data2),va21(0,data2);
if date<>date[1] Then { //날이 바뀐 첫봉에서
var50 = TotalTrades; //진입횟수 체크
}
CurrentEntryNum = iff(marketposition == 0,TotalTrades, TotalTrades+1 );
//method에 따른 피봇라인 설정
If method==1 Then {
Va10 = data2((HighD(1) + LowD(1) + CloseD(1)) / 3); //피봇
Va11= data2(Va10 * 2 - LowD(1));//1차 저항
Va12= data2(Va10 + HighD(1) - LowD(1)); //2차저항
Va9 = data2(Va10 * 2 - HighD(1)); //1차 지지
Va8 = data2(Va10 - HighD(1) + LowD(1)); //2차지지
}
Else {
Va10 = data2((HighD(1) + LowD(1) + CloseD(1) + OpenD(1)) / 4); //피봇
Va11= data2(Va10 * 2 - LowD(1));//1차 저항
Va12= data2(Va10 + HighD(1) - LowD(1));//2차저항
Va9 = data2(Va10 * 2 - HighD(1));//1차 지지
Va8 = data2(Va10 - HighD(1) + LowD(1));//2차지지
}
Va20=va11-va10;
Va21=va10-va9;
Condition1 = iff(marketposition == 0,date==entrydate(1), date==entrydate(0) ) and
iff(marketposition == 0,marketposition(1)==1, marketposition(0)==1 );
Condition2 = iff(marketposition == 0,date==entrydate(1), date==entrydate(0) ) and
iff(marketposition == 0,marketposition(1)==-1, marketposition(0)==-1 );
//진입
If stime<150000 Then {
If MarketPosition == 1 and BarsSinceEntry > 0 Then {
if data2(H >= OpenD(0)[1]+va20[1]*len1) Then
ExitLong("매수");
}
If MarketPosition == 0 And currententrynum-var50 < 1 and dayindex > 0 Then
If data2(L <= OpenD(0)[1]-va21[1]*len1) Then
Buy("매도");
}
var2 = data2(L);
if MarketPosition == 1 and BarsSinceEntry > 0 then{
if data2(H) >= Lowest(var2,BarsSinceEntry+1)[1]+data2(ATR(N)[1]*len) Then
ExitLong("매도청산");
}
setstopendofday(1500);
2. TR시스템식(콜)
input : len1(0.1), len(2.7),n(20);
var : count(0),cnt(0),va1(0,data2),va2(0,data2),va3(0,data2),va10(0,data2);
//TR설정
Va1=data2(highD(1));
Va2=data2(lowD(1));
Va3=data2(CloseD(2));
Va10= max(Va1,Va3)-min(Va2,Va3);
#당일 진입횟수 계산
Count = 0 ;
for cnt = 0 to 10 {
if EntryDate(cnt) == sdate then
Count = Count + 1;
}
condition1= date==exitdate(1) And marketposition(1)==1;
condition2= date==exitdate(1) And marketposition(1)==-1;
//진입
If stime<150000 then {
If MarketPosition == 0 and count < 1 and dayindex > 0 then {
if data2(H >= OpenD(0)[1]+va10[1]*len1) Then
buy("매수");
}
If MarketPosition == 1 then {
if data2(L <= OpenD(0)[1]-va10[1]*len1) Then
ExitLong("매도");
}
}
var1 = data2(H);
If marketposition == 1 and BarsSinceEntry > 0 Then {
if data2(L) <= highest(var1,BarsSinceEntry+1)[1]-data2(ATR(N)[1]*len) Then
exitlong("매수청산");
}
setstopendofday(1500);
2. TR시스템(풋)
input : len1(0.1), len(2.7),n(20);
var : count(0),cnt(0),va1(0,data2),va2(0,data2),va3(0,data2),va10(0,data2);
//TR설정
Va1=data2(highD(1));
Va2=data2(lowD(1));
Va3=data2(CloseD(2));
Va10=max(Va1,Va3)-min(Va2,Va3);
#당일 진입횟수 계산
Count = 0 ;
for cnt = 0 to 10 {
if EntryDate(cnt) == sdate then
Count = Count + 1;
}
condition1= date==exitdate(1) And marketposition(1)==1;
condition2= date==exitdate(1) And marketposition(1)==-1;
//진입
If stime<150000 then {
If MarketPosition == 1 then {
if data2(H >= OpenD(0)[1]+va10[1]*len1) Then
ExitLong("매수");
}
If MarketPosition == 0 and count < 1 and dayindex > 0 then {
if data2(L <= OpenD(0)[1]-va10[1]*len1) Then
Buy("매도");
}
}
var2 = data2(L);
if MarketPosition == 1 and BarsSinceEntry > 0 then{
if data2(H) >= Lowest(var2,BarsSinceEntry+1)[1]+data2(ATR(N)[1]*len) Then
ExitLong("매도청산");
}
setstopendofday(1500);
3. Max시스템(콜)
input : s1(0.1), s2(2.7),n(20);
var : count(0),cnt(0),va1(0,data2),va2(0,data2),va3(0,data2),va4(0,data2),va10(0,data2);
Va1= data2(highD(1));
Va2= data2(CloseD(1));
Va3= data2(LowD(1));
Va4= data2(closeD(1));
//패턴설정
If abs(Va1-va4)>=abs(Va2-va3) then
Va10=abs(Va1-va4);
Else
Va10=abs(Va2-va3);
#당일 진입횟수 계산
Count = 0 ;
for cnt = 0 to 10 {
if EntryDate(cnt) == sdate then
Count = Count + 1;
}
condition1= sdate==exitdate(1) And marketposition(1)==1;
condition2= sdate==exitdate(1) And marketposition(1)==-1;
If stime<150000 then {
If MarketPosition == 0 and count < 1 and dayindex > 0 then {
If data2(H >= OpenD(0)[1]+va10[1]*S1) Then
buy("매수");
}
If MarketPosition == 1 then {
if data2( L <= Opend(0)[1]-va10[1]*S1) Then
ExitLong("매도");
}
}
var1 = data2(H);
If marketposition == 1 and BarsSinceEntry > 0 Then {
if data2(L) <= highest(var1,BarsSinceEntry+1)[1]-data2(ATR(N)[1]*S2) Then
exitlong("매수청산");
}
setstopendofday(1500);
3. max시스템(풋)
input : s1(0.1), s2(2.7),n(20);
var : count(0),cnt(0),va1(0,data2),va2(0,data2),va3(0,data2),va4(0,data2),va10(0,data2);
Va1= data2(highD(1));
Va2= data2(CloseD(1));
Va3= data2(LowD(1));
Va4= data2(closeD(1));
//패턴설정
If abs(Va1-va4)>=abs(Va2-va3) then
Va10=abs(Va1-va4);
Else
Va10=abs(Va2-va3);
#당일 진입횟수 계산
Count = 0 ;
for cnt = 0 to 10 {
if EntryDate(cnt) == sdate then
Count = Count + 1;
}
condition1= sdate==exitdate(1) And marketposition(1)==1;
condition2= sdate==exitdate(1) And marketposition(1)==-1;
If stime<150000 then {
If MarketPosition == 1 then {
If data2(H >= OpenD(0)[1]+va10[1]*S1) Then
ExitLong("매수");
}
If MarketPosition == 0 and count < 1 and dayindex > 0 then {
if data2(L <= Opend(0)[1]-va10[1]*S1) Then
buy("매도");
}
}
var2 = data2(L);
if MarketPosition == 1 and BarsSinceEntry > 0 then{
if data2(H) >= Lowest(var2,BarsSinceEntry+1)[1]+data2(ATR(N)[1]*S2) Then
ExitLong("매도청산");
}
setstopendofday(1500);
즐거운 하루되세요
> 베드로 님이 쓴 글입니다.
> 제목 : 부탁드립니다
> 안녕하세요.
선물시스템식을 참조종목으로 사용하여 옵션매수전용 시스템식으로 구분하고자
합니다. 선물매수는 call옵션 매수전용식으로, 선물매도는 put옵션 매수전용식으로
작성 부탁드립니다.
선물전략식이 3가지로 이루어져 있읍니다.
한번에 많은 변환부탁드려 죄송합니다.
감사합니다.새해복많이받으세요.
===============================================================================
1.선물전략식(피봇시스템)
========================
input : len1(0.1),len(1.1), n(20),method(2);
var : CurrentEntryNum(0);
if date<>date[1] Then { //날이 바뀐 첫봉에서
var50 = TotalTrades; //진입횟수 체크
}
CurrentEntryNum = iff(marketposition == 0,TotalTrades, TotalTrades+1 );
//method에 따른 피봇라인 설정
If method==1 Then {
Var10 = (dayHigh(1) + dayLow(1) + dayClose(1)) / 3; //피봇
Var11= Var10 * 2 - dayLow(1);//1차 저항
Var12= Var10 + dayHigh(1) - dayLow(1); //2차저항
Var9= Var10 * 2 - dayHigh(1); //1차 지지
Var8= Var10 - dayHigh(1) + dayLow(1); //2차지지
}
Else {
Var10 = (dayHigh(1) + dayLow(1) + dayClose(1)+dayOpen(1)) / 4; //피봇
Var11= Var10 * 2 - dayLow(1);//1차 저항
Var12= Var10 + dayHigh(1) - dayLow(1);//2차저항
Var9= Var10 * 2 - dayHigh(1);//1차 지지
Var8= Var10 - dayHigh(1) + dayLow(1);//2차지지
}
Var20=var11-var10;
Var21=var10-var9;
Condition1 = iff(marketposition == 0,date==entrydate(1), date==entrydate(0) ) and
iff(marketposition == 0,marketposition(1)==1, marketposition(0)==1 );
Condition2 = iff(marketposition == 0,date==entrydate(1), date==entrydate(0) ) and
iff(marketposition == 0,marketposition(1)==-1, marketposition(0)==-1 );
//진입
If stime<150000 Then {
If Condition1==False And currententrynum-var50<=1 Then
buy("매수",Atstop,dayOpen+var20*len1);//지정가 상향돌파시 매수
If Condition2==False And currententrynum-var50<=1 Then
sell("매도",Atstop,dayOpen-var21*len1);//지정가 하향돌파시 매도
}
//청산
If marketposition == 1 Then {
exitlong("매수청산",Atstop,highest(high,barssinceentry+1)-atr(n)*len);
}
if MarketPosition == -1 then{
exitshort("매도청산",Atstop,lowest(low,barssinceentry+1)+atr(n)*len);
}
setstopendofday(1500);
#########################################################################
2.선물전략식(tr 시스템식)
=========================
input : len1(0.1), len(2.7),n(20);
var : count(0),cnt(0);
//TR설정
Var1=dayhigh(1);
Var2=daylow(1);
Var3=dayClose(2);
Var10=max(Var1,Var3)-min(Var2,Var3);
#당일 진입횟수 계산
Count = 0 ;
for cnt = 0 to 10 {
if EntryDate(cnt) == sdate then
Count = Count + 1;
}
condition1= date==exitdate(1) And marketposition(1)==1;
condition2= date==exitdate(1) And marketposition(1)==-1;
//진입
If stime<150000 then {
If condition1==False and MarketPosition <> 1 and count <2 then {
buy("매수",Atstop,dayopen+var10*len1);
}
If condition2==False and MarketPosition <> -1 and count <2 then {
sell("매도",Atstop,dayopen-var10*len1);
}
}
//청산
If marketposition == 1 Then {
exitlong("매수청산",Atstop,highest(high,barssinceentry+1)-atr(n)*len);
}
if MarketPosition == -1 then{
exitshort("매도청산",Atstop,lowest(low,barssinceentry+1)+atr(n)*len);
}
setstopendofday(1500);
###################################################################
3.선물전략식(max시스템)
======================
input : s1(0.1), s2(2.7),n(20);
var : count(0),cnt(0);
Var1=dayhigh(1);
Var2=dayclose(1);
Var3=dayLow(1);
Var4=dayclose(1);
//패턴설정
If abs(Var1-var4)>=abs(Var2-var3) then
Var10=abs(Var1-var4);
Else
Var10=abs(Var2-var3);
#당일 진입횟수 계산
Count = 0 ;
for cnt = 0 to 10 {
if EntryDate(cnt) == sdate then
Count = Count + 1;
}
condition1= sdate==exitdate(1) And marketposition(1)==1; condition2= sdate==exitdate(1) And marketposition(1)==-1:
If stime<150000 then {
If condition1==False and MarketPosition <> 1 and count <2 then {
buy("매수",Atstop,dayOpen+var10*S1);
}
If condition2==False and MarketPosition <> -1 and count <2 then {
sell("매도",Atstop,dayOpen-var10*S1);
}
}
//청산
If marketposition == 1 Then {
exitlong("매수청산",Atstop,highest(high,barssinceentry+1)-atr(n)*s2);
}
if MarketPosition == -1 then{
exitshort("매도청산",Atstop,lowest(low,barssinceentry+1)+atr(n)*s2);
}
setstopendofday(1500);
끝.
다음글
이전글