2016年3月31日木曜日

10万→10億突破!! ビリオネア量産EA完成!!

だいぶ興奮しています!!

バックテスト結果で億越えは可能でしたが、デリケートな設定が必要でした。
しかしこのEAは放置プレイでの億越えです。
2007年から今日までのロングランでバックテストをしましたが、
メモリー(8GB)のせいなのか、桁数の限界(Win10 64Bit)なのか2010年途中で終了となります。
結果をEXCELに貼り付けることもできないので詳細が分析できません。

純益は10桁、一、十、百、千、万、十万、百万、千万、億、十億
14億円とはしたですね。

億越えのEAの中では一番現実的です。
Longをもう少し極めたいところですね。







10億円EAはこちら

2016年3月29日火曜日

EA MONACO M1 EURUSD これはいい~♪

本日はEA MONACO最近気が付くと運用しているEAはRSIを使っている物が非常に多い。
オシレーターとしての精度が高いので使いやすいからである。
ボリンジャーバンドなどでは、2σを超えた後「実はバンドウォークでーす♪」
とやられるとオシレーターなのかトレンドなのかはっきりしろと言いたくなる事がある。

そこで今回はBAND1分+RSI1分+RSI5分のトリプルシグナルで動くVシステムのEA MONACOである。

勝ち負けの時期はMACAUに似ていますが、安定性はこちらのほうが期待できます。




MONACOはこちら

2016年3月28日月曜日

EA MACAU  EA作成300個記念!!

新しいEAを作るたびに色々な通貨、色々な足で最適化を行っていたのですが、
アイデアに最適化がついて行きません。
先ほど数えてみたら約半年でEAを331個作成していました。
まぁ設定違いやゴミEA、世界初といわれたSMILEなど色々ありました。
懐かしいところでは天空の城の放送にあわせて作られたEAバルスやHPでEAを作れるスクリプトなんてのも作りました。おっと感傷タイムはここまで

今日放出するのは、MACAU EURUSD M1で動かして下さい。
ウイリアム・ギャンの28のルールを意識しました。半分くらいは守っています。


中身はシンプルなRSI SL100 TP200のVシステムです。

MACAUはこちら

EA ADX 47 四連続ベットの回数を変更すると

4Rシステムはエントリー後の損益を利益に変えるためのシステムです。
4回連続でナンピン平均化売買プッシュでエントリー方向を間違えても3回まではフォローできるようにしていました。
なぜはじめと合わせて4回かというところですが、4回目で1+1+2+4で8本エントリーします。
利益から検討すると10本以内が理想的と考えたからです。

しかし、考えただけで検証はしていませんでした。
もしかすると5回がいいかも6回はもっといいかも、7回はもっといいかもしれません。
しかし回数を増やすと完敗した時のドローダウンは大きくなります。
そのさじ加減はどんなものでしょうか。

連続回数を4-7まで設定で選択できるようにしました。
結構大変でしたw
47というと元東京大学の某氏を思い出すのはわたしだけでしょうか

こまかい条件設定を説明します。

バックテストの設定のテスト設定です。
初期証拠金は最低4連続の時は80,000JPy5連続は15万円、6連続は30万円、7連続は60万円は必要になります。

数字の後ろはプルダウンですが「JPY」と手入力してください。
Roundは4-7の数字を入れて下さい。連続フォロー回数です。
上のメモに書いておきました。

Lotsもうえのメモに書いておきました、
上限10万単位の場合 4連は0.12以下 5連は0.06以下 6連は0.03以下 7連は0.01
でお願いします。

Profitはエントリーの幅
VolはADXのエントリーボリュームです。

今回は最終行でADXの30分足で見ていますが、どの足がいいか最適化してみてください。

7連続で2015は負け知らずの結果が出ましたが60万円で六万弱の利益では悲しいですね。
6連続で初期証拠金30万円利益6万円まで確認できました・・・

エントリーシステムとその時間足を最適化すれば無敗のEAができそうです。
難解だったModify()もかなりシンプルに再構築できました。

#property copyright "Copyright 2016/3/28,TACA"
#property link      "http://mt4kyoto.blogspot.jp/"
extern int MAGIC=777;
extern string RoundMemo="Round 4-7";
extern int Round=4;int SubRound;
extern string LotsMemo="Round/MaxLots 4:0.12 5:0.06 6:0.03 7:0.01";
extern double Lots=0.01;
extern double Profit=460;
extern int Vol=20;
double TProfit;double StopLoss;double Entry;double Mode;double ModeOld;
int d;int i;int LB;double LS;double L;datetime TimeOld;double Limit;
void init(){Profit*=Point;Limit=Close[0]*400*MathPow(2,Round-1);
if (Round<6){SubRound=Round;}else{SubRound=Round+1;}}
//---Main Routine---
void OnTick(){if(Time[0]!=TimeOld){TimeOld=Time[0];if(AccountEquity()<Limit){return;}
if(OrdersTotal()==0){
 if(TACAADX(0,1)>Vol){
  if(TACAADX(1,2)<TACAADX(2,2)){if(TACAADX(1,1)>TACAADX(2,1)){EL();}}
  if(TACAADX(1,2)>TACAADX(2,2)){if(TACAADX(1,1)<TACAADX(2,1)){ES();}}
  }}}
  Del();Modify();}
//---Long Entry Routine---
void EL(){Entry=Ask;StopLoss=Ask-Profit*Round;d=OrderSend(NULL,OP_BUY,Lots,Ask,3,StopLoss,Ask+Profit,"Long1",MAGIC,0,clrNONE);
 for(i=0;i<Round-1;i++) {d=OrderSend(NULL,OP_BUYLIMIT,Lots*MathPow(2,i),Ask-Profit*(i+1),3,StopLoss,Ask+Profit,NULL,MAGIC,0,clrNONE);}}
//---Short Entry Routine--- 
void ES(){Entry=Bid;StopLoss=Bid+Profit*Round;d=OrderSend(NULL,OP_SELL,Lots,Bid,3,StopLoss,Bid-Profit,"Short1",MAGIC,0,clrNONE);
 for(i=0;i<Round-1;i++){ d=OrderSend(NULL,OP_SELLLIMIT,Lots*MathPow(2,i),Bid+Profit*(i+1),3,StopLoss,Bid-Profit,NULL,MAGIC,0,clrNONE);}}
//---Modify Routine--- 
void Modify(){Mode=0;for(i=0;i<Round;i++){d=OrderSelect(i,SELECT_BY_POS);Mode+=OrderType();}
if(ModeOld!=Mode){ModeOld=Mode;
d=OrderSelect(0,SELECT_BY_POS);
if(OrderType()==0){TProfit=Entry+(Mode/2-Round+2)*Profit;}else{TProfit=Entry+(SubRound-+MathFloor(Mode/2))*Profit;}
for(i=0;i<Round;i++){d=OrderSelect(i,SELECT_BY_POS);d=OrderModify(OrderTicket(),OrderOpenPrice(),StopLoss,TProfit,0,clrNONE);}}}
//---Del Routine---
void Del(){if (OrdersTotal()!=Round){for(i=OrdersTotal()-1;i>=0;i--){d=OrderSelect(i,SELECT_BY_POS);d=OrderDelete(OrderTicket(),clrNONE);}}}
//---TACA ADX Routine---
double TACAADX(int Modes,int Shift){return(iADX(NULL,30,14,0,Modes,Shift));}

2016年3月26日土曜日

EA Momentum 4R V M1 USDJPY この曲線美!!

※COAと間違えてMomentumを作っていました。大分修正します(~~;)
トレンドの方向をつかむだけなのになかなか難しいところです。
Momentumあたりはどうでしょうか
意外ときれいに出ます。



Momentumはまじない的なことが書かれている書籍も多く見受けられますが、
平均線よりも時間軸を無視し価格の変化をつかみやすいですね。

一時間足平均による一分足4RVシステム 

いろいろなエントリーを考えましたが4Rシステムの一分足の利益幅は400前後が最適値として出てきます。
もしかするとエントリーはサイコロや乱数で決めても同じ値が出るかもしれません。
4Rの一分足は利益幅400前後という固定数を持っているのでしょう。

一時間足の平均の前後の上昇、下降でエントリーすることとしました。
MAの比較に0.05のアドバンテージを与えています。
緩やかな角度の上昇ではエントリーしなような細工です。
チャートもなかなか理論通りの形になってきました。



バックテストに一晩かかりました。
平均足の比較は一番前の足と一番最後の足の比較でしかありません。
Close[]で作ったほうがバックテストが早く終わったかもしれませんね。

pは平均の期間2-5、Profitは利益幅400前後 Advは平均のアドバンテージ0.1-0.7を探すとさらにいい値が見つけられるかもしれません
完成形に近づいてきた気がしますね♪


TACA-MA-4R-Vはこちら

2016年3月25日金曜日

EA 1ACE(ONE ACE) 加速器Vシステム搭載!!

ADXの力かどうかよくわからなくなってきましたが、
Vシステムで最大ロットを割り出し最大ロットを8で割ったロットをエントリーします。
EA名は1/8→ONE Eighth→ワンエイス→1ACEとなりましたv
ADX 4R V M1 USDJPYです。 

Vシステムは加速度的に残高が増減しますが、1/8しているのでその実力はどうでしょうか


バックテストの時に残高が少なくなるとOrderSendErrorがでてもたつく為に非常に時間がかかっていましたが、残高が少なくなるとキャンセルするようにしました。
純資産が4,000を下回ると終了します。
バックテストはJPYで動かしてください。

1ACEはこちら

ADX 4R M1 USDJPYシステム!!ビジュアルモードで確認すると驚愕の事実が!!!

ADXの一分足の成績が思ったより良かったのでADX 4Rを作成しました。
Volは前回よかった27を採用、4Rの幅は580にしました。
もう少し利益が欲しいところですがなかなか素敵です。
さすがはADX様 いままで邪険にしていてごめんね。


と、ここまではいつもの流れなのですがビジュアルモードで動きを確認してみると、
ADXがシグナルを出してエントリーその後数十分から数時間後に利益確定。
利益確定までを短くすればもっとエントリーできるのでは、
いやまてよ、そもそも一分足のADXで数時間後を予想することはできるのだろうか・・・

細かく確認してみると
ADXのシグナル発生 ⇒ エントリー ⇒ シグナル発生x20~100 ⇒ クローズ
なんという事でしょう、全くADXが関与していないことが発覚しました(^^;)

このまま、Vシステムを結合する予定だったのですが、またも予定変更です。



ソースコードでございます。
Modifyルーチンは傑作だと思っております。

#property copyright "Copyright 2016/3/25,TACA"
#property link      "http://mt4kyoto.blogspot.jp/"
extern int MAGIC=747;
extern int Vol=27;
extern double Profit=580;
extern double Lots=0.03;
double TProfit;double StopLoss;double Entry;
double Type[4]={0,0,0,0};
double Mode;double ModeOld;
int d;int i;datetime TimeOld;
int init(){Profit*=Point;return(0);}
//---Main Routine---
void OnTick(){
if(Time[0]!=TimeOld){TimeOld=Time[0];
if(OrdersTotal()==0){
 if(TACAADX(0,1)>Vol){
  if(TACAADX(1,2)<TACAADX(2,2)){if(TACAADX(1,1)>TACAADX(2,1)){EL();}}
  if(TACAADX(1,2)>TACAADX(2,2)){if(TACAADX(1,1)<TACAADX(2,1)){ES();}}
}
}
}
Del();
Modify();
}
//---TACA ADX Routine---
double TACAADX(int Modes,int Shift){return(iADX(NULL,0,14,0,Modes,Shift));}
//---Long Entry Routine---
void EL(){
Entry=Ask;Mode=3;ModeOld=3;StopLoss=Ask-Profit*4;
 d=OrderSend(NULL,OP_BUY    ,Lots,  Ask,    3,StopLoss,Ask+Profit,"Long1",MAGIC,0,Red);
 for(i=0;i<3;i++)
 {d=OrderSend(NULL,OP_BUYLIMIT,Lots*MathPow(2,i),Ask-Profit*(i+1),3,StopLoss,Ask+Profit,"Long"+(i+2),MAGIC,0,Red);}}
//---Short Entry Routine---
void ES(){
Entry=Bid;Mode=7;ModeOld=7;StopLoss=Bid+Profit*4;
 d=OrderSend(NULL,OP_SELL,    Lots,   Bid,    3,StopLoss,Bid-Profit,"Short1",MAGIC,0,Blue);
 for(i=0;i<3;i++){
 d=OrderSend(NULL,OP_SELLLIMIT,Lots*MathPow(2,i),Bid+Profit*(i+1),3,StopLoss,Bid-Profit,"Short"+(i+3),MAGIC,0,Blue);}}
//---Modify Routine---
void Modify(){
for(i=0;i<4;i++){d=OrderSelect(i,SELECT_BY_POS);Type[i]=OrderType();}
if (Type[0]==0){Mode=(Type[1]+Type[2]+Type[3])/2;}
else
{Mode=(1+Type[1]+Type[2]+Type[3])/2+2;}
if(ModeOld!=Mode)
{ModeOld=Mode;
if (Mode<4){TProfit=Entry+(Mode-2)*Profit;}else{TProfit=Entry+(6-Mode)*Profit;}
for(i=0;i<4;i++){
d=OrderSelect(i,SELECT_BY_POS);
d=OrderModify(OrderTicket(),OrderOpenPrice(),StopLoss,TProfit,0,Green);
}}}
//---Del Routine---
void Del(){
if (OrdersTotal()!=4){
for (i=OrdersTotal()-1; i>=0; i--){
d=OrderSelect(i,SELECT_BY_POS);
d=OrderDelete(OrderTicket(),clrNONE);
}}}

2016年3月24日木曜日

EA BDeh1/2

古い記憶だがスイス インタラーケンからマッターホルンへ向かう登山列車はラックアンドピニオン式で線路の真ん中にギアの引っかかる刻みがあった。
車両はたしかBDeh 1/2 小さくてキュートな形であるが坂をぐんぐん登る。
グラフがぐんぐん登るようにとその名前をEAに付けました。
(※EXCELのB列とD列とE列とH列からつけた名前ではありません!!)
バラバラのeaを一つにまとめるのは苦労しました。


レンジ相場にはポジションをため込む傾向があります。
本来の作成趣旨とは異なりますがこれはこれでいいですねw




BDEH1/2はこちら

MACD RSI Bands ADXの組み合わせ

シンプルなエントリーをあきらめ複数の組み合わせを検討しましょう
各EAのバックテスト結果をEXCELに張り付けピポットテーブルで月別に加工
6年すなわち72か月は多すぎるので年ごとに抜粋しました。
ひと月マイナスを我慢するのは精神的に悪いので一番下のプラス月も検討材料に追加
BDEHはBとDとEとHの合算です。



まず驚いたのがADXです。マイナス年がなくプラス月が一番多い、すばらしい安定感
ADXは苦手だったのですが、見直しました。
ではADXにVシステムを搭載すると


月別にみると損失マイナス100万以上の月が8か月 
結果だけを見ると10万円が66万円になっていますが、これはいただけないですね

そしてMACD,RSI,Bands,ADXからプラス月の多いBDEHが
プラス月58か月 分母は72カ月ですので80.5%です。
これをうまく活用したいところですね。
4つをばらばらのMT4で動かすか、一つにまとめるか。
OANDAは両建てができません。
買い建てを持っている時に売りシグナルが出た時の処理が難しいところです。
単純に買いクローズ、売りエントリーでは指標の能力差が反映されません。
指標ごとに優先順位を付ける手がベターな気がします。
Vシステムも単純に4分割ではなく比率を変えた方がよさそうです。
なかなか大変な作業が待っていそうです(@@;)

MACD一分足にVシステムを搭載すると

ベルギーの首都ブリュッセルで大きな爆発があったニュースが飛び込んできました。
この場をお借りしてお悔み申し上げます。
ちょうど先月あの空港までフライトし、ブリュッセルを楽しんだのですが、
まさかこんなことになるとは...


2016年3月23日水曜日

ADX 1分足の設定検証!!

ADX 1分足の実力と設定を検証してみました。
ソースコードはこんな感じです
期間14の+DI,-DIのゴールデンクロスとボリューム越えでエントリー。SL(ストップロス)とTP(利益確定)を0.1から1.0まで0.1単位で最適化
期間は2010.1.1-2015.12.31です。

#property copyright "Copyright 2016/3/23,TACA"
#property link      "http://mt4kyoto.blogspot.jp/"
extern double SL=0.5;
extern double TP=0.5;
extern int Vol=16;
int d;datetime TimeOld;
void OnTick()
{if(Time[0]!=TimeOld){TimeOld=Time[0];
  if(OrdersTotal()==0){
  if(TADX(0,1)>Vol){
  if(TADX(1,2)<TADX(2,2)){if(TADX(1,1)>TADX(2,1)){EL();}}
  if(TADX(1,2)>TADX(2,2)){if(TADX(1,1)<TADX(2,1)){ES();}}

     }}}}
void Exit(){for (int i=OrdersTotal()-1;i>=0;i--)
{       d=OrderSelect(i,SELECT_BY_POS);
         d=OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),5,clrNONE);}}
void EL(){d=OrderSend(Symbol(),OP_BUY ,0.01,Ask,2,Ask-SL,Ask+TP,NULL,1,0,clrNONE);}
void ES() {d=OrderSend(Symbol(),OP_SELL,0.01,Bid,2,Bid+SL,Bid-TP,NULL,1,0,clrNONE);}
double TADX(int Mode,int Shift){return(iADX(NULL,0,14,0,Mode,Shift));}

最適化結果は・・・なぜか写真がUPできません><



利益 取引回数 PF 期待利益 DD DD% SL TP Volume
56,806 851 1.2 66.75 8116 6.53% SL=0.6  TP=0.9  Vol=27
49,242 999 1.15 49.29 13244 9.12% SL=0.6  TP=0.8  Vol=23
47,938 548 1.2 87.48 10638 9.22% SL=1  TP=0.9  Vol=22
47,806 876 1.16 54.57 9485 6.49% SL=0.6  TP=0.9  Vol=26
47,206 1014 1.14 46.55 16295 11.53% SL=0.6  TP=0.8  Vol=24
46,306 881 1.16 52.56 10712 9.25% SL=0.6  TP=0.9  Vol=25
44,386 549 1.19 80.85 11577 8.17% SL=1  TP=0.9  Vol=24
43,306 2322 1.12 18.65 16127 10.83% SL=0.2  TP=0.9  Vol=27
42,806 984 1.13 43.5 11927 8.38% SL=0.6  TP=0.8  Vol=26
42,442 870 1.14 48.78 13659 10.58% SL=0.6  TP=0.9  Vol=23


Volume27は大きい気がしますが全体的に見て一番上がいいですね

ボリンジャーバンド 1分足の設定検証!!

ボリンジャーバンド 1分足の実力と設定を検証してみました。
ソースコードはこんな感じです
期間20のDevision1.5から2.5まで0.5刻み。SL(ストップロス)とTP(利益確定)を0.1から1.0まで0.1単位で最適化
期間は2010.1.1-2015.12.31です。

#property copyright "Copyright 2016/3/23,TACA"
#property link      "http://mt4kyoto.blogspot.jp/"
extern double SL=0.5;
extern double TP=0.5;
extern double Devision=2.0;
int d;datetime TimeOld;
void OnTick()
{if(Time[0]!=TimeOld){TimeOld=Time[0];
  if(OrdersTotal()==0){
  if(TBand(Devision,1,1)<Close[1]){ES();}
  if(TBand(Devision,2,1)>Close[1]){EL();}
     }}}
void Exit(){for (int i=OrdersTotal()-1;i>=0;i--)
{       d=OrderSelect(i,SELECT_BY_POS);
         d=OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),5,clrNONE);}}
void EL(){d=OrderSend(Symbol(),OP_BUY ,0.01,Ask,2,Ask-SL,Ask+TP,NULL,1,0,clrNONE);}
void ES() {d=OrderSend(Symbol(),OP_SELL,0.01,Bid,2,Bid+SL,Bid-TP,NULL,1,0,clrNONE);}
double TBand(double Dev,int Mode,int Shift){return(iBands(NULL,0,20,Dev,0,0,Mode,Shift));}

最適化結果は・・・見にくいです。ごめんなさい


利益 取引回数 PF 期待利益 DD DD% SL TP Devision
54,899 1354 1.15 40.55 11116 7.67% SL=0.6  TP=0.6  Devision=2
51,602 623 1.2 82.83 19128 13.76% SL=0.8  TP=1  Devision=1.5
46,899 5076 1.1 9.24 11613 9.30% SL=0.1  TP=0.9  Devision=1.5
45,513 985 1.14 46.21 14159 10.32% SL=0.6  TP=0.8  Devision=2.5
43,699 1168 1.12 37.41 11765 9.51% SL=0.6  TP=0.7  Devision=2
41,899 1591 1.11 26.34 15920 11.87% SL=0.4  TP=0.7  Devision=2.5
41,412 699 1.15 59.24 16832 13.56% SL=0.8  TP=0.9  Devision=1.5
41,202 978 1.13 42.13 14733 11.47% SL=0.5  TP=1  Devision=1.5
40,892 8899 1.06 4.6 19468 15.10% SL=0.1  TP=0.5  Devision=1.5
40,499 2616 1.1 15.48 11800 11.50% SL=0.2  TP=0.9  Devision=1.5


上位10設定はこのような感じです。
一番上が無難ですね。上から二番目、取引数は少なく期待利益が大きく三番目はその逆です。


RSI 1分足の設定検証!!

RSI 1分足の実力と設定を検証してみました。
ソースコードはこんな感じです
期間14のRSIが30以下、もしくは70以上でエントリー。SL(ストップロス)とTP(利益確定)を0.1から1.0まで0.1単位で最適化
期間は2010.1.1-2015.12.31です。

#property copyright "Copyright 2016/3/23,TACA"
#property link      "http://mt4kyoto.blogspot.jp/"
extern double SL=0.5;
extern double TP=0.5;
int d;datetime TimeOld;
void OnTick()
{if(Time[0]!=TimeOld){TimeOld=Time[0];
  if(OrdersTotal()==0){
   if(TRSI(1)<30){EL();}
    if(TRSI(1)>70){ES();}}}}
void Exit(){for (int i=OrdersTotal()-1;i>=0;i--)
{       d=OrderSelect(i,SELECT_BY_POS);
         d=OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),5,clrNONE);}}
void EL(){d=OrderSend(Symbol(),OP_BUY ,0.01,Ask,2,Ask-SL,Ask+TP,NULL,1,0,clrNONE);}
void ES() {d=OrderSend(Symbol(),OP_SELL,0.01,Bid,2,Bid+SL,Bid-TP,NULL,1,0,clrNONE);}
double TRSI(int Shift){return(iRSI(NULL,0,14,0,Shift));}

最適化結果は・・・見にくいです。ごめんなさい
黄菱形がSL 0.6 TP 0.5で最高値152,349
しかし黄三角SL 0.1 TP 0.9二番手146,699が周りからみて好きですね

利益 取引数 PF 期待利得 DD DD% SL TP
52,349 1564 1.13 33.47 11,515 8.68% SL=0.6  TP=0.5
46,699 4808 1.11 9.71 19,387 13.48% SL=0.1  TP=0.9
43,099 4337 1.11 9.94 21,238 16.09% SL=0.1  TP=1
42,424 972 1.14 43.65 13,153 10.00% SL=0.5  TP=1
41,799 1002 1.14 41.72 15,075 11.19% SL=1  TP=0.5
41,649 2046 1.1 20.36 17,438 13.34% SL=0.8  TP=0.3
41,499 5386 1.09 7.7 13,604 10.22% SL=0.1  TP=0.8
36,692 8245 1.05 4.45 16,637 12.59% SL=0.1  TP=0.5
35,989 871 1.12 41.32 15,910 12.41% SL=0.8  TP=0.7
35,044 1757 1.09 19.95 12,563 10.33% SL=0.3  TP=0.9

上位10設定はこのような感じです。
一番上の期待利得あってドローダウンが少ないが周りとかけ離れているものと
上から二番目、取引数はそこそこ期待利得がすくないが周辺と類似しているものか悩ましいですね。

MACD 1分足の設定検証!!

MACD1分足の実力と設定を検証してみました。
ソースコードはこんな感じです
12,26,9のMACDが0以下でゴールデンクロス(上に突き抜け)もしくは0以上でデッドクロス(下に突き抜け)でSL(ストップロス)とTP(利益確定)を0.1から1.0まで0.1単位で最適化
期間は2010.1.1-2015.12.31です。

#property copyright "Copyright 2016/3/23,TACA"
#property link      "http://mt4kyoto.blogspot.jp/"
extern double SL=0.5;
extern double TP=0.5;
int d;datetime TimeOld;
void OnTick()
{if(Time[0]!=TimeOld){TimeOld=Time[0];if(OrdersTotal()==0){
  if(TMACD(0,2)<TMACD(1,2)){if(TMACD(0,1)>TMACD(1,1)){if(TMACD(0,1)<0){EL();}}}
   if(TMACD(0,2)>TMACD(1,2)){if(TMACD(0,1)<TMACD(1,1)){if(TMACD(0,1)>0){ES();}}}}}}
void Exit(){for (int i=OrdersTotal()-1;i>=0;i--)
{d=OrderSelect(i,SELECT_BY_POS);
         d=OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),5,clrNONE);}}
void EL(){d=OrderSend(Symbol(),OP_BUY ,0.01,Ask,2,Ask-SL,Ask+TP,NULL,1,0,clrNONE);}
void ES() {d=OrderSend(Symbol(),OP_SELL,0.01,Bid,2,Bid+SL,Bid-TP,NULL,1,0,clrNONE);}
double TMACD(int Mode,int Shift){return(iMACD(NULL,0,12,26,9,0,Mode,Shift));}

最適化結果は・・・見にくいです。ごめんなさい
赤矢印がSL 0.1 TP 0.4で最高値137,942


 利益 
 取引数
   PF
期待利得
  DD
 DD%
  SL
  TP
37,942 8927 1.05 4.25 10205 8.84% SL=0.1  TP=0.4
36,730 7401 1.06 4.96 11381 8.36% SL=0.1  TP=0.5
28,330 687 1.11 41.24 13040 12.51% SL=1  TP=0.7
21,830 962 1.07 22.69 22648 17.97% SL=1  TP=0.5
20,540 2726 1.04 7.53 13303 11.21% SL=0.4  TP=0.4
20,285 606 1.08 33.47 20611 19.03% SL=0.9  TP=0.9
19,495 764 1.07 25.52 16156 15.37% SL=0.7  TP=0.9
18,140 1426 1.05 12.72 16677 14.16% SL=0.4  TP=0.8
17,840 1273 1.05 14.01 20261 17.75% SL=0.4  TP=0.9
15,640 1615 1.04 9.68 13681 11.58% SL=0.4  TP=0.7


上位10設定はこのような感じです。
一番上の小さな期待利得でこつこつ9,000回弱の取引をした物と
上から三番目取引数は少ないけれども期待利得が大きいのが対象敵ですね。



2016年3月22日火曜日

みんなで億万長者! EA天.下.一.品 拉麺帝都最旨!!!

過去四年のUSDJPYを徹底分析した結果
鶏がらスープのこってりEAができました。


ロット制限回避の為 大きな金額を分割してエントリーしています。
そのためグラフの時間と回数にギャップがあります。




EA天下一品はこちら

2016年3月17日木曜日

EA Double Dragon!!

億の壁でV作戦を使うと勝つ金額と負ける金額に差が出ることを紹介した。
すなわちは真逆のロジックのEAを両建てすれば片方は爆増、片方は資金0になるのではないだろうか。
(A列は一行ごとに0.95倍(青)、B列は1.05倍(オレンジ)した値とグラフ)



そこで2つのEAを作成した。一つはDouble Dragon Long LEE もう一つはDouble Dragon Short LEE
LONG LEEは足が変わる毎に買い売り買い売りを繰り返す。
ShortLEEは足が変わる毎に売り買い売り買いを繰り返す。

2015年日足で片方が破産するまで実施しEXCELで合計をグラフ化した。

各10万円 合計20万円でスタート
ShortLEEが六月前半で破産し終了!LongLEEは50万オーバー
合計30万増加となった。

しかし、各時期でバックテストをしたところ、増えているほうが負続けると、合計がじわじわ減っていくことが分かった。肘鉄をくらった感じでやめ時が難しい...
勝ち続けるもしくは負け続けるインジケーターが欲しいところである。





Double Dragon Short LEEはこちら





Double Dragon Long LEEはこちら













V作戦第七談 フラクタルで数字を出せるのか!!!

MT4に初めから入っているインディケーターでフラクタルというやつがいます。

人知れず、そうあなたのMT4にも密かに入っています。
ZigZagのライバル的なやつですがリペイントすることはありません。
しかし、人より二歩後ろをついてくる奥ゆかしいやつです。

前後二本の足より最高値が高い時にダウンマークがつきます。逆も同じです。
(前二本後ろ一本でいいと思うのですが...)

二本遅れる為よほど流れが一定のトレンド相場で力を発揮するのですが。
レンジ相場ではだましが多くなります。
フラクタルの改良系は多く出ていますがフラクタルのみでのチャレンジは
いまだかつて見たことがありません。


そこで、レンジ相場の2015に挑戦です。
H1でフラクタルは活躍できるのか試してみました。
最適化するような設定すらありませんw実力勝負です。
だまし対策に平均を入れていますが、スパイス程度ですね。



FractalVはこちら

2016年3月15日火曜日

V作戦と億への障害!!

V作戦とは、ワンポジションのみを持つEAのロット管理システムである。
カジノでは持ち金の80%をBETし続けると勝つという方法がある。
勝って持ち金が増えるとベット単価が増え、負けている時は減る。
勝つときの流れに乗るといった紹介が多いが、非常に理も適っている。

下は100,000スタートで青(左の数字)は5%ずつ減りオレンジ(右)は5%ずつ増える。
28回目をみると左は75,000減っているが右は273,000増えている。
グラフも青はなだらかな下りであるがオレンジの伸びは二次元的である。

そこでV作戦(Vシステム)は手持ち資金をコントロールする事によって、
億万長者量産しようと考えた。




指標は何でもいいのでロット管理にこれを入れると爆発的に資金が延びていきます。
(失敗作の中には勝率25.39%、5年で利益9百万円を超えるものまでできましたw)

そして、大作の一つがEA音羽山清水寺なのですが、真ん中でロット上限100を超え伸びが落ちています。資金が増えると勝敗にかかわらず100ロットエントリーしてしまうのでVシステムのメリットが出ません。

そして・・・
さらに調べたところOANDAベーシックコースでは10万通貨すなわち1ロットまでしかエントリーできません。
通貨ペアの仕様は100になっているのでバックテストは100ロットエントリーできるようです。

それ以上エントリーするにはプロコースにする必要があるとのこと
因みに、プロコースはスプレッド2倍の0.8PIPS (>.<;;)

よく見ると「※10万通貨を超えるお取引は、複数回にわけて発注いただくことにより可能となります。」と記載が

なんだ簡単じゃんw
そこで、一秒間にどれくらい発注できるのかやってみました。
ループを使うよりダイレクトのほうが数ミリ秒早いのでこのようなソースになりました。
見苦しくてすみません。
下に続く


int d;int x=1;
void OnTick(){if(x==1){
d=OrderSend(Symbol(),OP_SELL,0.01,Bid,2,Bid+0.01,Bid-0.01,"Short",1,0,Blue);
d=OrderSend(Symbol(),OP_SELL,0.01,Bid,2,Bid+0.01,Bid-0.01,"Short",1,0,Blue);
d=OrderSend(Symbol(),OP_SELL,0.01,Bid,2,Bid+0.01,Bid-0.01,"Short",1,0,Blue);
d=OrderSend(Symbol(),OP_SELL,0.01,Bid,2,Bid+0.01,Bid-0.01,"Short",1,0,Blue);
d=OrderSend(Symbol(),OP_SELL,0.01,Bid,2,Bid+0.01,Bid-0.01,"Short",1,0,Blue);
d=OrderSend(Symbol(),OP_SELL,0.01,Bid,2,Bid+0.01,Bid-0.01,"Short",1,0,Blue);
d=OrderSend(Symbol(),OP_SELL,0.01,Bid,2,Bid+0.01,Bid-0.01,"Short",1,0,Blue);
d=OrderSend(Symbol(),OP_SELL,0.01,Bid,2,Bid+0.01,Bid-0.01,"Short",1,0,Blue);
d=OrderSend(Symbol(),OP_SELL,0.01,Bid,2,Bid+0.01,Bid-0.01,"Short",1,0,Blue);
d=OrderSend(Symbol(),OP_SELL,0.01,Bid,2,Bid+0.01,Bid-0.01,"Short",1,0,Blue);
d=OrderSend(Symbol(),OP_SELL,0.01,Bid,2,Bid+0.01,Bid-0.01,"Short",1,0,Blue);
d=OrderSend(Symbol(),OP_SELL,0.01,Bid,2,Bid+0.01,Bid-0.01,"Short",1,0,Blue);
d=OrderSend(Symbol(),OP_SELL,0.01,Bid,2,Bid+0.01,Bid-0.01,"Short",1,0,Blue);
d=OrderSend(Symbol(),OP_SELL,0.01,Bid,2,Bid+0.01,Bid-0.01,"Short",1,0,Blue);
d=OrderSend(Symbol(),OP_SELL,0.01,Bid,2,Bid+0.01,Bid-0.01,"Short",1,0,Blue);
d=OrderSend(Symbol(),OP_SELL,0.01,Bid,2,Bid+0.01,Bid-0.01,"Short",1,0,Blue);
d=OrderSend(Symbol(),OP_SELL,0.01,Bid,2,Bid+0.01,Bid-0.01,"Short",1,0,Blue);
d=OrderSend(Symbol(),OP_SELL,0.01,Bid,2,Bid+0.01,Bid-0.01,"Short",1,0,Blue);
d=OrderSend(Symbol(),OP_SELL,0.01,Bid,2,Bid+0.01,Bid-0.01,"Short",1,0,Blue);
d=OrderSend(Symbol(),OP_SELL,0.01,Bid,2,Bid+0.01,Bid-0.01,"Short",1,0,Blue);
d=OrderSend(Symbol(),OP_SELL,0.01,Bid,2,Bid+0.01,Bid-0.01,"Short",1,0,Blue);
d=OrderSend(Symbol(),OP_SELL,0.01,Bid,2,Bid+0.01,Bid-0.01,"Short",1,0,Blue);
d=OrderSend(Symbol(),OP_SELL,0.01,Bid,2,Bid+0.01,Bid-0.01,"Short",1,0,Blue);
d=OrderSend(Symbol(),OP_SELL,0.01,Bid,2,Bid+0.01,Bid-0.01,"Short",1,0,Blue);
d=OrderSend(Symbol(),OP_SELL,0.01,Bid,2,Bid+0.01,Bid-0.01,"Short",1,0,Blue);
d=OrderSend(Symbol(),OP_SELL,0.01,Bid,2,Bid+0.01,Bid-0.01,"Short",1,0,Blue);
d=OrderSend(Symbol(),OP_SELL,0.01,Bid,2,Bid+0.01,Bid-0.01,"Short",1,0,Blue);
d=OrderSend(Symbol(),OP_SELL,0.01,Bid,2,Bid+0.01,Bid-0.01,"Short",1,0,Blue);
d=OrderSend(Symbol(),OP_SELL,0.01,Bid,2,Bid+0.01,Bid-0.01,"Short",1,0,Blue);
d=OrderSend(Symbol(),OP_SELL,0.01,Bid,2,Bid+0.01,Bid-0.01,"Short",1,0,Blue);
d=OrderSend(Symbol(),OP_SELL,0.01,Bid,2,Bid+0.01,Bid-0.01,"Short",1,0,Blue);
d=OrderSend(Symbol(),OP_SELL,0.01,Bid,2,Bid+0.01,Bid-0.01,"Short",1,0,Blue);
d=OrderSend(Symbol(),OP_SELL,0.01,Bid,2,Bid+0.01,Bid-0.01,"Short",1,0,Blue);
d=OrderSend(Symbol(),OP_SELL,0.01,Bid,2,Bid+0.01,Bid-0.01,"Short",1,0,Blue);
d=OrderSend(Symbol(),OP_SELL,0.01,Bid,2,Bid+0.01,Bid-0.01,"Short",1,0,Blue);
d=OrderSend(Symbol(),OP_SELL,0.01,Bid,2,Bid+0.01,Bid-0.01,"Short",1,0,Blue);
d=OrderSend(Symbol(),OP_SELL,0.01,Bid,2,Bid+0.01,Bid-0.01,"Short",1,0,Blue);
d=OrderSend(Symbol(),OP_SELL,0.01,Bid,2,Bid+0.01,Bid-0.01,"Short",1,0,Blue);
d=OrderSend(Symbol(),OP_SELL,0.01,Bid,2,Bid+0.01,Bid-0.01,"Short",1,0,Blue);
d=OrderSend(Symbol(),OP_SELL,0.01,Bid,2,Bid+0.01,Bid-0.01,"Short",1,0,Blue);
d=OrderSend(Symbol(),OP_SELL,0.01,Bid,2,Bid+0.01,Bid-0.01,"Short",1,0,Blue);
d=OrderSend(Symbol(),OP_SELL,0.01,Bid,2,Bid+0.01,Bid-0.01,"Short",1,0,Blue);
d=OrderSend(Symbol(),OP_SELL,0.01,Bid,2,Bid+0.01,Bid-0.01,"Short",1,0,Blue);
d=OrderSend(Symbol(),OP_SELL,0.01,Bid,2,Bid+0.01,Bid-0.01,"Short",1,0,Blue);
d=OrderSend(Symbol(),OP_SELL,0.01,Bid,2,Bid+0.01,Bid-0.01,"Short",1,0,Blue);
d=OrderSend(Symbol(),OP_SELL,0.01,Bid,2,Bid+0.01,Bid-0.01,"Short",1,0,Blue);
d=OrderSend(Symbol(),OP_SELL,0.01,Bid,2,Bid+0.01,Bid-0.01,"Short",1,0,Blue);
d=OrderSend(Symbol(),OP_SELL,0.01,Bid,2,Bid+0.01,Bid-0.01,"Short",1,0,Blue);
if (d==1){x=0;}}}


結果です。え??
一秒間に3~4個しか発注できないの?
40個くらい無駄でしたw

ということは繰り返し発注しても3ロットが限界ですね。















そして、3ロット限定でのEA音羽山清水寺の結果です。
三億二千万円⇒1千四百万円 マイナス3億円です。
悲しい結果ですがココハ逆に考えましょう
100ロット制限がなければゲイツに届くかもしれません!!

そこでお願いですw

USDJPYスプレッド0.4以下(原則固定もしくは平均)でロット制限が無いもしくは大きいところがあれば教えて下さい!!!!!




2016年3月14日月曜日

十万円→三億円!? V作戦第六弾!! EA音羽山清水寺(おとわやませいすいじ)

EA清水寺、久しぶりにソースを見直してみると、
いろいろとめんどくさい手法を使っています。
イギリスの議会では難解で理解困難な言い回しが良い発言とされるそうですが、
そんなソースです><;;

手直しをしようと思いましたがめんどくさいので
そのままロット管理にVシステムを突っ込みました。

バックテスト待ち切れなかったため、まあこんなもんかのスコア―をピックアップしています。


ソースコードを下に書いておきます。
億単位になってくるとブログに上げていいのか、
事件に巻き込まれないか、不安になりますね

あくまで最適化の一例紹介ですので、実際三億になるかどうかはわかりません。




金額が膨れすぎて、グラフの左が見えません。
対前月の金額伸び率です。100%だと、前月から増減なしという事になります。
32%~349%と幅があります。





音羽山清水寺(おとわやませいすいじ)はこちら



2016年3月11日金曜日

V作戦第五弾!! MACDエントリーADXクローズ

ADXが19以上でMACDのエントリーシグナルが出た時にエントリー
ADX下降でクローズとしました。

期間は先ほどのADXと同じ
10万円から80万円越え、しかし最終41万円着地です。






MACD-ADX-Vはこちら

V作戦第四弾!! ADX Vシステム!!

ADXは苦手ですね。
ボリュームとクローズにはいいかもしれませんが、
エントリーにはだましが多すぎる気がします。
取りあえず時期まで最適化w
H4 2012-2014 10万→210万 
う~ん この~



ADX TACAVはこちら

V作戦第三弾!! MACD Vシステム!!やはり安定のマックディ

続いてMACDの一時間足でVシステムを試してみました。
いつもの11か月で10万→49万
時間がないので1,5,15,30分の最適化ができていません><;(だれか手伝ってw)
2012-2015の期間でバックテストをすると・・・(勇気と時間と野望のある方はやってみてください)






MACDTACAVはこちら

V作戦第二弾!! EA 金閣寺 -V- COA Vシステム

金閣寺システムの完成である。
EA金閣寺はXプロジェクト(X’mas)で作成された画期的EAである。
COAの15分足、一時間足からエントリーし平均化するEAで100万円⇒227万円(11か月)という
素晴らしい成績を持っている。
しかし初期証拠金100万はすこし多めである。
そこでVシステムを導入し金閣寺Vを完成させた。
EA金閣寺と比較のためにいつもの11か月データであるが、RSIより勝率は改善している。
初期証拠金はEA金閣寺の1/10 10万円でのエントリーである。
結果は10万円⇒77万円 
TPとSLがデリケートな設定を必要とします。







1時間足で動かしてください。

EA金閣寺Vはこちら




金閣寺の歴史をおさらいせねばならない
鹿苑寺(金閣寺)にはもともと西園寺があった。持ち主は西園寺家である。
しかし13世紀末西園寺公宗が天皇暗殺を計画したため、西園寺氏は追放、財産没収となった。
そしてその500年後西園寺公宗の末裔、西園寺公望(のちの総理大臣)が
金閣寺の近くに立命館大学を創立。立命館と言えば金閣寺の守護大学である。
しかしさらに50年後大谷大学の学生が立ち上がり金閣寺を全焼させた。
以来京都では大谷の学生と立命の学生は口を利かないこととなっている。
これが、鴨川ホル●で大谷大学が出てこなかった理由である。

V作戦!! RSITACAV vs RSITACA

V作戦とは可変レート検討のプロジェクト名である。
79年当時、某少佐が「ロットの量の違いが、損益の決定的差ではないということを教えてやる」と暴言を吐いたことは有名であるが、エントリー後のボリュームや勝率予測によってレートを変化させることに有益さは感じられる。
チャンスを最大限に生かすといったところであろうか
しかし、いかなるボリュームを測定しても、有意差を打ち出すことはかなわなかった。
V作戦を除いては・・・

期間は2012.01.01-2015末
上はRSITACA(固定0.2LOTS) 下は RSITACA V
RSI 期間10 30/70の1,5分足両方オーバーでエントリー S/L0.1 T/P0.4

両方とも勝率は22.82%(低い)同じ動作をでLOTSの違いのみ
上はきれいな右肩上がりだ
下はアートのような美しい曲線、そして激しく振れている
これだけ見るとほとんどの人が上を選択するだろう
しかし、見るべきは損益
開始時の10万円が固定ロットでは31万円増えて41万円に
RSITACAは150万円増え160万円
V作戦可変LOTSシステムは化け物か!!!!

※最適化するとまだまだ利益が増えますが過度の最適化は実戦的ではありません。
開発時にウルトラスペシャルペタ最適化をしたところ3,000万円~5,000万円を超えると、
打ち止めになります。OANDAの場合最高LOTS100というのに気が付かず悩みました。








ソースコードは二個です。上は固定ロット下は可変ロット(V作戦)MAGICナンバー変更しました。



RSITACAソースコードはこちら

RSITACAVはこちら

2016年3月8日火曜日

四連倍倍プッシュのトレイディングストップ化RSI4rIII

四連倍倍システムはRSIシグナルでエントリーし平均化するRSIAveragingシステムのエントリー数を限定するために開発したのですが、エントリー数の限定ゆえに利益が増えません。
四連倍倍プッシュ(4R、四連続ナンピン)はエントリー後10Pipsの利益が出れば利益確定、逆に進めば追加エントリー平均化で10Pipsの上昇でクローズ。
四回エントリーチャンスがありますが、どこのエントリー後も10Pips上がれば同じだけ利益が得られるシステムです。(IIは10Pipsの幅を調整できるようにしました)
しかし初めのエントリー後、追加エントリーしないときにはトレイディングストップすることで利益を増やす、もしくは追加エントリー回数を増やすことができるのではとのコンセプトで開発しました。
ソースがだいぶごちゃごちゃになってきたので怒られそうですが、ご容赦ください。
最適化にまる二日かかってしまいました。リスクベネフィットの面で納得できる値が出ていませんが、4Rより利益は出せますでお試しください。
最適化でいい値が出た時は教えてください^^






#property copyright "Copyright 2016/3/6,TACA"
#property link      "http://mt4kyoto.blogspot.jp/"
#define MAG 7777777
datetime TimeOld;
extern int RSIPeriod=20;
extern int RSIBL=30;
extern int RSIUL=70;
extern double Profit=2110;
extern double TSP=460;
extern double Lots=0.05;
double TSSL;
double TProfit;
double StopLoss;
double Entry;
double Type[4]={0,0,0,0};
double Mode;
double ModeOld;
int Ticket;
int Slip=3;
int d;
int i;
int init(){Profit*=Point;TSP*=Point;return(0);}
void start(){
if(Time[0]!=TimeOld){TimeOld=Time[0];
if(OrdersTotal()==0){ModeOld=0;
if(iRSI(NULL,0,RSIPeriod,0,1)<=RSIBL)
{LongEntry();}
if(iRSI(NULL,0,RSIPeriod,0,1)>=RSIUL)
{ShortEntry();}
}//Orderstotal
}//Time
Modify();
if (OrdersTotal()!=4){Delete();}
}//start
void TSU()
{if(Entry+TSP<Close[0]&&TSSL+TSP<Close[0])
  {TSSL=Close[0]-TSP;
  d=OrderSelect(Ticket,SELECT_BY_TICKET);
  d=OrderModify(OrderTicket(),OrderOpenPrice(),TSSL,0,0,clrNONE);
 
}
}
void TSD()
{if(Entry-TSP>Close[0]&&TSSL-TSP>Close[0])
  {TSSL=Close[0]+TSP;
  d=OrderSelect(Ticket,SELECT_BY_TICKET);
  d=OrderModify(OrderTicket(),OrderOpenPrice(),TSSL,0,0,clrNONE);
 
}
}
void NTS()
{
if (Mode<4){TProfit=Entry+(Mode-2)*Profit;}else{TProfit=Entry+(6-Mode)*Profit;}
if(Mode==3||Mode==7){TProfit=0;}
for(i=0;i<4;i++)
  {d=OrderSelect(i,SELECT_BY_POS);
   d=OrderModify(OrderTicket(),OrderOpenPrice(),StopLoss,TProfit,0,clrNONE);
   
}
}


void Modify(){Comment("");
for(i=0;i<4;i++){d=OrderSelect(i,SELECT_BY_POS);Type[i]=OrderType();}
if (Type[0]==0){Mode=(Type[1]+Type[2]+Type[3])/2;}
else{Mode=(1+Type[1]+Type[2]+Type[3])/2+2;}
if(ModeOld!=Mode)
{ModeOld=Mode;
NTS();}
if (Mode==3){TSU();}
else
if (Mode==7){TSD();}
}

void Delete()
{for (i=OrdersTotal()-1; i>=0; i--)
  {d=OrderSelect(i,SELECT_BY_POS);
   d=OrderDelete(OrderTicket(),clrNONE);
} } 


void LongEntry(){TSSL=Ask;
Entry=Ask;StopLoss=Ask-Profit*4;
 Ticket=OrderSend(NULL,OP_BUY    ,Lots,  Ask,    Slip,StopLoss,0,"Long1",MAG,0,Red);
 d=OrderSend(NULL,OP_BUYLIMIT,Lots,  Ask-Profit*1,Slip,StopLoss,0,"Long2",MAG,0,Red);
 d=OrderSend(NULL,OP_BUYLIMIT,Lots*2,Ask-Profit*2,Slip,StopLoss,0,"Long3",MAG,0,Red);
 d=OrderSend(NULL,OP_BUYLIMIT,Lots*4,Ask-Profit*3,Slip,StopLoss,0,"Long4",MAG,0,Red);
}
void ShortEntry(){TSSL=Bid;
Entry=Bid;StopLoss=Bid+Profit*4;
 Ticket=OrderSend(NULL,OP_SELL,    Lots,   Bid,    Slip,StopLoss,0,"Short1",MAG,0,Blue);
 d=OrderSend(NULL,OP_SELLLIMIT,Lots,   Bid+Profit*1,Slip,StopLoss,0,"Short2",MAG,0,Blue);
 d=OrderSend(NULL,OP_SELLLIMIT,Lots*2, Bid+Profit*2,Slip,StopLoss,0,"Short3",MAG,0,Blue);
 d=OrderSend(NULL,OP_SELLLIMIT,Lots*4, Bid+Profit*3,Slip,StopLoss,0,"Short4",MAG,0,Blue);
}

2016年3月4日金曜日

RSI4RII 最適化 いいじゃないですか!!

あまり最適化は好きではないのですが、
RSIの期間20 ボーダーを30,70とシンプルにして
プロフィットを検討しました。
四連続倍倍プッシュです。
一分足の予想範囲は100(0.1円)程度と考えていたのですが
400-500の間に利益の山ができます。
正直驚きました!!
今回は530で200,000スタートです。
四連続負けがまだまだありますがいい感じです。
雇用統計が四連負けの1/3程度になりますので、
雇用統計ロック機能を付ければ、更に安定するかもしれません。

そういえば今夜も雇用統計ですね。

#property copyright "Copyright 2016/3/4,TACA"
#property link      "http://mt4kyoto.blogspot.jp/"
#define MAG 141421356
datetime TimeOld;
extern int RSIPeriod=20;
extern int RSIBL=30;
extern int RSIUL=70;
extern double Profit=530;
extern double Lots=0.01;
double TProfit;
double StopLoss;
double Entry;
double Type[4]={0,0,0,0};
double Mode;
double ModeOld;
int Slip=3;
int d;
int i;
int init(){Profit*=Point;return(0);}
int start(){

if(Time[0]!=TimeOld){TimeOld=Time[0];
if(OrdersTotal()==0){
if(iRSI(NULL,0,RSIPeriod,0,1)<=RSIBL)
{LongEntry();}
if(iRSI(NULL,0,RSIPeriod,0,1)>=RSIUL)
{ShortEntry();}
}
}
Exit();
Modify();
return(0);}

void LongEntry(){
Entry=Ask;Mode=3;ModeOld=3;StopLoss=Ask-Profit*4;
 d=OrderSend(NULL,OP_BUY    ,Lots,  Ask,    Slip,StopLoss,Ask+Profit,"Long1",MAG,0,Red);
 d=OrderSend(NULL,OP_BUYLIMIT,Lots,  Ask-Profit*1,Slip,StopLoss,Ask+Profit,"Long2",MAG,0,Red);
 d=OrderSend(NULL,OP_BUYLIMIT,Lots*2,Ask-Profit*2,Slip,StopLoss,Ask+Profit,"Long3",MAG,0,Red);
 d=OrderSend(NULL,OP_BUYLIMIT,Lots*4,Ask-Profit*3,Slip,StopLoss,Ask+Profit,"Long4",MAG,0,Red);
}
void ShortEntry(){
Entry=Bid;Mode=7;ModeOld=7;StopLoss=Bid+Profit*4;
 d=OrderSend(NULL,OP_SELL,    Lots,   Bid,    Slip,StopLoss,Bid-Profit,"Short1",MAG,0,Blue);
 d=OrderSend(NULL,OP_SELLLIMIT,Lots,   Bid+Profit*1,Slip,StopLoss,Bid-Profit,"Short2",MAG,0,Blue);
 d=OrderSend(NULL,OP_SELLLIMIT,Lots*2, Bid+Profit*2,Slip,StopLoss,Bid-Profit,"Short3",MAG,0,Blue);
 d=OrderSend(NULL,OP_SELLLIMIT,Lots*4, Bid+Profit*3,Slip,StopLoss,Bid-Profit,"Short4",MAG,0,Blue);
}
void Modify(){
for(i=0;i<4;i++){d=OrderSelect(i,SELECT_BY_POS);Type[i]=OrderType();}
if (Type[0]==0){Mode=(Type[1]+Type[2]+Type[3])/2;}
else
{Mode=(1+Type[1]+Type[2]+Type[3])/2+2;}
if(ModeOld!=Mode)
{ModeOld=Mode;
if (Mode<4){TProfit=Entry+(Mode-2)*Profit;}else{TProfit=Entry+(6-Mode)*Profit;}
for(i=0;i<4;i++){
d=OrderSelect(i,SELECT_BY_POS);
d=OrderModify(OrderTicket(),OrderOpenPrice(),StopLoss,TProfit,0,Green);
}}}

void Exit(){
if (OrdersTotal()!=4){
    for (i=OrdersTotal()-1; i>=0; i--){
d=OrderSelect(i,SELECT_BY_POS);
d=OrderDelete(OrderTicket(),clrNONE);
}}}

2016年3月3日木曜日

【解析】ナンピンはなぜ破たんするのか!!RSI Averaging USDJPY M5

EAで最も重要なのはエントリーの予想が外れ逆行した時のポジションの処理です。
私の手法の一つに追加エントリーし平均化することで逆行化したレートに近づけるものがあります。
欠点としては破たんしてしまうことがあります。
今回は破たんの理由を追及してみます。
初期証拠金100,000JPYでRSIAveragingを2005~20160301までで破たんしたところをピックアップしました。破たんしたのは11回
2009年まではBuyエントリー2010年からはSellエントリーです。
この偏りは偶然なのでしょうか?
2012年までは冬です。
2006,7,10,11,15年は破たんなしです。
年月 b/s ポジション数
200512 buy 30
200801 buy 22
200803 buy 24
200911 buy 41
201202 sell 31
201211 sell 37
201212 sell 27
201304 sell 20
201311 sell 28
201408 sell 30
201410 sell 17
それでは一つずつ見ていきたいと思います。
最後までお付き合いください。
Rateは購入RATE
Averageはその時点での平均価格+利益 決済予定価格ですね
DifferenceはAverageとRateの差    決済予定価格までの差になります。
 2005.12は購入直後に0.2円動いています。
その後03:30にも0.13円 その後もひたすら下がっています。
いくら平均化してもここまで動きが大きいと追いつけません。
15:35で1.7円逆走し1/6には5円下がって破たんです。


 2008.01 購入直後に0.07の逆走その五分後にはさらに0.08下がりDifが約0.1にその後どんどん下がっていくのですがDif0.4まで、平均化で0.2まで距離を縮めますが破たんです。もう少し資金があれば回復できたかもしれません。

 2008.03は10分で0.15下がり12時間後には1.5円のダウンで破たんです。
 2009.11 今までと違い購入からじわじわ下がり35分後にRSIが上昇し購入をストップポジションを抱えたまま五時間後にエントリーを再開、ひたすらじわじわ行きます。
翌日21時には1.6円のダウンその後27日には3.5円ダウンで破たんです。

 二年ほど経過しここからは売りモードです。RSIの売りラインは75に設定してありますので、これ以上あげれないところです。3本エントリーする間に0.12円上昇10時間の沈黙の後0.4円上昇Difが0.6まで開きます。その後平均化で差を縮めますがまた開き1.4円の上昇で破たんです。

 2012.11ここも初っ端5分で1.1円上昇し最終2円上昇で破たんです。

 2012.12 メリークリスマス~年明けを迎えられずの破たん つらいです。
こちらは30分で0.12円上昇 26日の再エントリーは0.7円上昇しています。
最後は粘るのですが大晦日破たんです。これももう少し資金があれば乗り越えれたかもしれません。

 2013.4 春が来ました。こちらはエントリー五分後に0.15円上昇翌日には3.5円上昇しています。いったいどれくらいの人が退場したのでしょう。恐ろしい...

 2013.11 エントリー後じわじわ上昇します。抑え込める範囲ですが、1時間半後に突然0.2円ほど上昇その後2週間かけて攻防しますがクラッシュします。

 2014.8夏ですね^^ こちらもエントリー後ポジションを重ねていったところ
20日6:45突然の急上昇で平均化が間に合わなくなり破たん。
ある程度ポジションがたまったところに相場が急変して追いつけなくなるパターンですね。

 2014.10最後です。ここまで読んでくれた人ありがとう!!
これはポジション数がわずか17!少ないのに一気に破たんしています。
開始直後に0.24の乖離、そのまま3.3円上昇しての終了です。


①ポジションが溜まりすぎてその後の急変で平均化が間に合わない。
②エントリー後の急上昇(0.1程度)で追いつけなくなる。
③RSIのエントリーラインを超えたけれども反転しない。

①に対してはポジション数にリミットをかければいいかと思うのですが、2014.10の17ポジションでは少ない気がします。
②目標まで0.1以上の乖離でS/Lすればいいかもしれませんが数値をうまく調整しないとS/Lが増えて利益が出ないかもしれません。
③RSI以外のシグナルで確認してみてもいいかもしれませんが、エントリー数が減るのが怖いですね。
この辺を踏まえての作成調整してみたいと思います。
ナンピン派の皆様の参考になれば幸いです。