新説フィボナッチ売買戦略 Ver2.1 ソースコード | SystemTradingのブログ

SystemTradingのブログ

システムトレードに関するブログです


テーマ:

新説フィボナッチ売買戦略 Ver2.1のソースコードを公開しますね (^-^)/

今回は前回より内部が大幅に変化していますが基本的に新説フィボナッチ

変動分析の仕様に即した構成です。一部解説していない設定がありますが

近日中に解説しますのでお待ちください m(_ _ )m

基本的なロジック内容は、

 

 

参考 : 新説フィボナッチ売買戦略 Ver2.0

 

 

の内容と過去の新説フィボナッチ変動分析の解説を参考にしてください。

このバージョンもパフォーマンス性能こそ高くなっていますが、まだ条件が足

りないのでノイズ的な売買や想定しない売買が多くあります。よって実践に耐

えられる性能からは未だに遠いです。改造は自由なのでドンドン条件を変え

て検証してみてください。ただし、

 

 

フィボナッチ数列から離れる条件はNG 

 

 

だと思います。あくまでもフィボナッチ数列の特性に従った条件が望ましいと

思います。

 

 

 

 

 

 

 

 

【新説フィボナッチ売買戦略 Ver2.1 ソースコード】

入力変数は以前から変化ありません。使い方がわからない方やエラーが出る

方はコメントまで質問してくださいね (^-^)/


 

 

 

{
User Specifies***500
}
Arrays:
//Basic Array
FiboNum[2000](0),FcountGap[100](0),FWideGap[100](0),Ratio[100](0);
//Fibonacci Period
FiboNum[2]=3;FiboNum[3]=8;FiboNum[4]=6;FiboNum[5]=20;FiboNum[6]=24;FiboNum[7]=16;
FiboNum[8]=12;FiboNum[9]=24;FiboNum[10]=60;FiboNum[11]=10;FiboNum[12]=24;
FiboNum[13]=28;FiboNum[14]=48;FiboNum[15]=40;FiboNum[16]=24;FiboNum[17]=36;
FiboNum[18]=24;FiboNum[19]=18;FiboNum[20]=60;FiboNum[21]=16;FiboNum[22]=30;
FiboNum[23]=48;FiboNum[24]=24;FiboNum[25]=100;FiboNum[26]=84;FiboNum[27]=72;
FiboNum[28]=48;FiboNum[29]=14;FiboNum[30]=120;FiboNum[31]=30;FiboNum[32]=48;
FiboNum[33]=40;FiboNum[34]=36;FiboNum[35]=80;FiboNum[36]=24;FiboNum[37]=76;
FiboNum[38]=18;FiboNum[39]=56;FiboNum[40]=60;FiboNum[41]=40;FiboNum[42]=48;
FiboNum[43]=88;FiboNum[44]=30;FiboNum[45]=120;FiboNum[46]=48;FiboNum[47]=32;
FiboNum[48]=24;FiboNum[49]=112;FiboNum[50]=300;
FiboNum[51]=72;FiboNum[52]=84;FiboNum[53]=108;FiboNum[54]=72;FiboNum[55]=20;
FiboNum[56]=48;FiboNum[57]=72;FiboNum[58]=42;FiboNum[59]=58;FiboNum[60]=120;
FiboNum[61]=60;FiboNum[62]=30;FiboNum[63]=48;FiboNum[64]=96;FiboNum[65]=140;
FiboNum[66]=120;FiboNum[67]=136;FiboNum[68]=36;FiboNum[69]=48;FiboNum[70]=240;
FiboNum[71]=70;FiboNum[72]=24;FiboNum[73]=148;FiboNum[74]=228;FiboNum[75]=200;
FiboNum[76]=18;FiboNum[77]=80;FiboNum[78]=168;FiboNum[79]=78;FiboNum[80]=120;
FiboNum[81]=216;FiboNum[82]=120;FiboNum[83]=168;FiboNum[84]=48;FiboNum[85]=180;
FiboNum[86]=264;FiboNum[87]=56;FiboNum[88]=60;FiboNum[89]=44;FiboNum[90]=120;
FiboNum[91]=112;FiboNum[92]=48;FiboNum[93]=120;FiboNum[94]=96;FiboNum[95]=180;
FiboNum[96]=48;FiboNum[97]=196;FiboNum[98]=336;FiboNum[99]=120;FiboNum[100]=300;
FiboNum[101]=50;FiboNum[102]=72;FiboNum[103]=208;FiboNum[104]=84;FiboNum[105]=80;
FiboNum[106]=108;FiboNum[107]=72;FiboNum[108]=72;FiboNum[109]=108;FiboNum[110]=60;
FiboNum[111]=152;FiboNum[112]=48;FiboNum[113]=76;FiboNum[114]=72;FiboNum[115]=240;
FiboNum[116]=42;FiboNum[117]=168;FiboNum[118]=174;FiboNum[119]=144;FiboNum[120]=120;
FiboNum[121]=110;FiboNum[122]=60;FiboNum[123]=40;FiboNum[124]=30;FiboNum[125]=500;
FiboNum[126]=48;FiboNum[127]=256;FiboNum[128]=192;FiboNum[129]=88;FiboNum[130]=420;
FiboNum[131]=130;FiboNum[132]=120;FiboNum[133]=144;FiboNum[134]=408;FiboNum[135]=360;
FiboNum[136]=36;FiboNum[137]=276;FiboNum[138]=48;FiboNum[139]=46;FiboNum[140]=240;
FiboNum[141]=32;FiboNum[142]=210;FiboNum[143]=140;FiboNum[144]=24;FiboNum[145]=140;
FiboNum[146]=444;FiboNum[147]=112;FiboNum[148]=228;FiboNum[149]=148;FiboNum[150]=600;
FiboNum[151]=50;FiboNum[152]=36;FiboNum[153]=72;FiboNum[154]=240;FiboNum[155]=60;
FiboNum[156]=168;FiboNum[157]=316;FiboNum[158]=78;FiboNum[159]=216;FiboNum[160]=240;
FiboNum[161]=48;FiboNum[162]=216;FiboNum[163]=328;FiboNum[164]=120;FiboNum[165]=40;
FiboNum[166]=168;FiboNum[167]=336;FiboNum[168]=48;FiboNum[169]=364;FiboNum[170]=180;
FiboNum[171]=72;FiboNum[172]=264;FiboNum[173]=348;FiboNum[174]=168;FiboNum[175]=400;
FiboNum[176]=120;FiboNum[177]=232;FiboNum[178]=132;FiboNum[179]=178;FiboNum[180]=120;
FiboNum[181]=90;FiboNum[182]=336;FiboNum[183]=120;FiboNum[184]=48;FiboNum[185]=380;
FiboNum[186]=120;FiboNum[187]=180;FiboNum[188]=96;FiboNum[189]=144;FiboNum[190]=180;
FiboNum[191]=190;FiboNum[192]=96;FiboNum[193]=388;FiboNum[194]=588;FiboNum[195]=280;
FiboNum[196]=336;FiboNum[197]=396;FiboNum[198]=120;FiboNum[199]=22;FiboNum[200]=300;
FiboNum[196]=336;FiboNum[197]=396;FiboNum[198]=120;FiboNum[199]=22;FiboNum[200]=300;
FiboNum[201]=136;FiboNum[202]=150;FiboNum[203]=112;FiboNum[204]=72;FiboNum[205]=40;
FiboNum[206]=624;FiboNum[207]=48;FiboNum[208]=168;FiboNum[209]=90;FiboNum[210]=240;
FiboNum[211]=42;FiboNum[212]=108;FiboNum[213]=280;FiboNum[214]=72;FiboNum[215]=440;
FiboNum[216]=72;FiboNum[217]=240;FiboNum[218]=108;FiboNum[219]=296;FiboNum[220]=60;
FiboNum[221]=252;FiboNum[222]=456;FiboNum[223]=448;FiboNum[224]=48;FiboNum[225]=600;
FiboNum[226]=228;FiboNum[227]=456;FiboNum[228]=72;FiboNum[229]=114;FiboNum[230]=240;
FiboNum[231]=80;FiboNum[232]=84;FiboNum[233]=52;FiboNum[234]=168;FiboNum[235]=160;
FiboNum[236]=174;FiboNum[237]=312;FiboNum[238]=144;FiboNum[239]=238;FiboNum[240]=120;
FiboNum[241]=240;FiboNum[242]=330;FiboNum[243]=648;FiboNum[244]=60;FiboNum[245]=560;
FiboNum[246]=120;FiboNum[247]=252;FiboNum[248]=60;FiboNum[249]=168;FiboNum[250]=1500;
FiboNum[251]=250;FiboNum[252]=48;FiboNum[253]=240;FiboNum[254]=768;FiboNum[255]=360;
FiboNum[256]=384;FiboNum[257]=516;FiboNum[258]=264;FiboNum[259]=304;FiboNum[260]=420;
FiboNum[261]=168;FiboNum[262]=390;FiboNum[263]=176;FiboNum[264]=120;FiboNum[265]=540;
FiboNum[266]=144;FiboNum[267]=88;FiboNum[268]=408;FiboNum[269]=268;FiboNum[270]=360;
FiboNum[271]=270;FiboNum[272]=72;FiboNum[273]=112;FiboNum[274]=276;FiboNum[275]=100;
FiboNum[276]=48;FiboNum[277]=556;FiboNum[278]=138;FiboNum[279]=120;FiboNum[280]=240;
FiboNum[281]=56;FiboNum[282]=96;FiboNum[283]=568;FiboNum[284]=210;FiboNum[285]=360;
FiboNum[286]=420;FiboNum[287]=80;FiboNum[288]=48;FiboNum[289]=612;FiboNum[290]=420;
FiboNum[291]=392;FiboNum[292]=444;FiboNum[293]=588;FiboNum[294]=336;FiboNum[295]=580;
FiboNum[296]=228;FiboNum[297]=360;FiboNum[298]=444;FiboNum[299]=336;FiboNum[300]=600;
FiboNum[600]=600

Inputs:
Type(1),EndTrade(1530),MinPricePoints(1),BaseHighPrice(Close),BaseLowPrice(close);
Vars:
count(0),count2(0),Barcount(0),Highcount(0),Lowcount(0),
BasePrice(0),HighPrice(0),LowPrice(0),
Wideconfig(0),Countconfig(0),Coefficient06(0),Coefficient16(0),
Passage(0),Line16(0),Line06(0);

//Bar Initial value
count=1;
condition1=(Date<>Date[1]);
condition2=(Date=Date[1]);
//Format
If condition1 then begin
Barcount=2;
HighPrice=close[count];
LowPrice=close[count];
end else Barcount=Barcount[1]+1;
//Parameter Getting
If condition1 then begin
While Date[count]=Date[count+1] begin
count=count+1;
If HighPrice<BaseHighPrice[count] then begin
HighPrice=BaseHighPrice[count];
Highcount=count;
end;
If LowPrice>BaseLowPrice[count] then begin
LowPrice=BaseLowPrice[count];
Lowcount=count;
end;
end;
end;
//Base Price
If condition1 and Highcount<Lowcount then BasePrice=HighPrice;
If condition1 and Highcount>Lowcount then BasePrice=LowPrice;
//Gap
If HighPrice<>0 and LowPrice<>0 then begin
FWideGap[0]=Absvalue(HighPrice-LowPrice)/minpricepoints;
FcountGap[0]=Absvalue(Highcount-Lowcount)+1;
end;
//Fibonacci Number
If condition1 then begin
For count2=0 to 10 begin
FWideGap[count2+1] =FiboNum[FWideGap[count2]];
If FWideGap[count2+1]<>FWideGap[count2] and
(FWideGap[count2+1]=24 or FWideGap[count2+1]=120 or FWideGap[count2+1]=600) then
Wideconfig=count2+1;
FcountGap[count2+1]=FiboNum[FcountGap[count2]];
If FcountGap[count2+1]<>FcountGap[count2] and
(FcountGap[count2+1]=24 or FcountGap[count2+1]=120 or FcountGap[count2+1]=600) then
Countconfig=count2+1;
If HighPrice<>0 and LowPrice<>0 and FcountGap[count2+1]<>0 then begin
Ratio[count2+1]=(HighPrice-LowPrice)/FcountGap[count2+1];
end;
end;
end;
//Passage of Time & Price
Coefficient06=Power(0.618,Countconfig);
Coefficient16=Power(1.618,Countconfig);
If Highcount<Lowcount then begin
Passage=Highcount+(Barcount-1);
Line06=HighPrice-Ratio[10]*(Passage-1)*minpricepoints*Coefficient06;
Line16=HighPrice-Ratio[10]*(Passage-1)*minpricepoints*Coefficient16;
end;
If Highcount>Lowcount then begin
Passage=Lowcount+(Barcount-1);
Line06=LowPrice+Ratio[10]*(Passage-1)*minpricepoints*Coefficient06;
Line16=LowPrice+Ratio[10]*(Passage-1)*minpricepoints*Coefficient16;
end;

//Forward Signal*********************************************************************
condition3=(Date[1]=Date[2]);
condition4=(FcountGap[0]<>24 and FcountGap[0]<>120 and FcountGap[0]<>600 {and LowPrice<close});
//Fibonacci Short Signal condition
condition5=(Highcount<Lowcount and BasePrice>close and Line16>close);
If condition5 and condition4 then begin
If condition1 and condition3 then sellshort ("Forward-S") next bar at market;
end;
//Fibonacci Long Signal condition
condition6=(Highcount>Lowcount and BasePrice<close and Line16<close {and HighPrice>close});
If condition6 and condition4 then begin
If condition1 and condition3 then buy ("Forward-L") next bar at market;
end;
//Backward Signal********************************************************************
//Fibonacci Short Signal condition
condition7=(Highcount<Lowcount and BasePrice<close and FcountGap[1]>Passage and Line06<close);
If condition7 then begin
If marketposition=-1 and condition3 then buy ("Backward-L") next bar at market;
end;
//Fibonacci Long Signal condition
condition8=(Highcount>Lowcount and BasePrice>close and FcountGap[1]>Passage and Line06>close);
If condition8 then begin
If marketposition=1 and condition3 then sellshort ("Backward-S") next bar at market;
end;

//Moc Setting************************************************************************
If Type=1 then begin
//TOCOM Floor time from 9:00 to 17:30
condition20=(endtime=0 and time>=1725);
condition21=(endtime=1 and time>=1525);
If condition20 and marketposition=1 then sell ("LMoc-1725") next bar at market;
If condition20 and marketposition=-1 then buytocover ("SMoc-1725") next bar at market;
//TOCOM Floor time from 9:00 to 17:30
If condition21 and marketposition=1 then sell ("LMoc-1525") next bar at market;
If condition21 and marketposition=-1 then buytocover ("SMoc-1525") next bar at market;
end;
//Other Floor time
If Type=2 then begin
If Time=EndTrade and marketposition=1 then sell ("LMoc") this bar on close;
If Time=EndTrade and marketposition=-1 then buytocover ("SMoc") this bar on close;
end;
 

 

 

 

ペタしてね

ブログの中の人さんをフォロー

ブログの更新情報が受け取れて、アクセスが簡単になります

Ameba人気のブログ

Amebaトピックス