커뮤니티

부탁드립니다

프로필 이미지
베드로
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); 끝.