2016年2月29日月曜日

RSI4rII 四連続ナンピンシステムのレート幅可変へ

歴史上京師である京都が騒がしい日が幾度となくあった。
古くは南北朝や先の大戦応仁の乱、新選組の時代もそうであった。
そして今朝は京都大学と京都府警の抗争 
俗に言う京大ポポロ事件の京都府警側の攻撃があった。
朝から青白の機動隊バス、オレンジ灰色のガス対策車、
白黒のパトカーそして救急車が無数に走っている。
二百と有余名の機動隊が京都大学を襲撃したとのうわさが町中にながれている。
恐ろしい話である。

そんな中、四連ナンピンシステムの改良を行った。
なずけてEA熊野寮(いやこれはまずいか)
なずけてEA折田先生(いやこれもまずいか)
なずけてRSI4rII (IIはうるう日の象徴の2月のIIです!!)
RSIの四連続ナンピンシステムのレート幅を変更できるようにしました。

レート幅を足に合わせることで損益はかなり改善されました。
勝率も80%(四連続ナンピンの平均化過程でのマイナスも含みます)素晴らしい数字です。

インディケータを平均やMACD、ADXもしくは複合化して勝率をさらに上げれば、
数百年ぶりにナンピンが見直される時代がやってくるかもしれません。




#property copyright "Copyright 2016/1/26,TACA"
#property link      "http://mt4kyoto.blogspot.jp/"
#define MAG 1124

datetime TimeOld;
extern int RSIPeriod=16;
extern int RSIBL=33;
extern int RSIUL=75;
extern double Profit=260;
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年2月26日金曜日

MA資金 (MAAveragingEURJPY M1) 

M氏からのもうひとつのオーダーMA Averaging EURJPY。
MAのセッティングは非常にデリケートです。
Profit:9
FastP:4
SlowP:13
MMode:2

最大ベットは32本です。
10万円が+101,469 

セッティングで+30万まで増やせます。
初期証拠金が豊富にある場合はトライしてみるのもいいかもしれません。

LOTは0.01のみです。
もう少し最大ベット数を減らせるといいですね。



#property copyright "Copyright 2016/2/26,TACA&M"
#property link      "http://mt4kyoto.blogspot.jp/"
datetime TimeOld;
int Ticket;
extern int Profit=9;
extern int FastP=4;
extern int SlowP=13;
extern int MMode=2;

double PrSub;
double PosAve;
int Mode=0;
extern double Lots=0.01;
int start(){if(Time[0]!=TimeOld){TimeOld=Time[0];
if(OrdersTotal()==0){Mode=0;}
if(Mode>=0)
{if(iMA(NULL,1,FastP,0,MMode,0,2)<=iMA(NULL,1,SlowP,0,MMode,0,2))
{if(iMA(NULL,1,FastP,0,MMode,0,1)>iMA(NULL,1,SlowP,0,MMode,0,1))
{int b=OrderSend(NULL,0,Lots,Ask,3,0,Bid+Profit*Point,"Long",1231,0,Red);Mode=1;}}}
if(Mode<=0)
{if(iMA(NULL,1,FastP,0,MMode,0,2)>=iMA(NULL,1,SlowP,0,MMode,0,2))
{if(iMA(NULL,1,FastP,0,MMode,0,1)<iMA(NULL,1,SlowP,0,MMode,0,1))
{int c=OrderSend(NULL,1,Lots,Bid,3,0,Bid-Profit*Point,"Short",1231,0,Blue);Mode=-1;}}}    
Averaging();    
}return(0);}
int Averaging()
{ double LastPrice=0;double PosAll=0;double PosNum=0;
  for(int i=0;i<OrdersTotal();i++)
  {int d=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
    LastPrice=OrderOpenPrice();
    PosAll+=LastPrice*OrderLots();
    PosNum+=OrderLots();
  }
  if(PosNum==0){PosAve=0;}
  else{ PosAve=PosAll/PosNum;}   
  for(i=0;i<OrdersTotal();i++)
  { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==True)
    { Ticket=OrderTicket();
      if(OrderType()==0)
      {PrSub=PosAve+Profit*Point;}
      else
      {PrSub=PosAve-Profit*Point;} 
    int e=OrderModify(Ticket,OrderOpenPrice(),0,PrSub,0,CLR_NONE);
    }
  }
return(0);
}

M資金(RSIAveringEURJPY)

ある人から連絡があった。彼は本名を知られることを嫌う。仮にM氏と呼ぶこととする。M氏はまとまった資金が必要な気配を漂わせている。
そうそれはM資金である!!

M氏のある依頼はRSIAveragingシステムのEURJPYでの活用について。

もともとスプレッドUSDJPY(スプレッド4)での開発したEAである。
EURUSD(スプレッド5)での設定、開発に莫大な時間を費やしたが
失敗したため他通貨での運用を放棄していた。
そんな中EURJPYはスプレッド7。
開発は不可能に思えたのですが...

Profit:17
RSIPeriod:22
RSIBL:33
RSIUL:75

損益は10万円⇒+33,503円
最大ベット数は21本でLots0.07まではクリアしています。
初期証拠金5万円 Lot0.01  年間利益 約3~4万円
       10万円 Lots0.03 年間利益    10万円
       20万円 Lots0.07 年間利益    20万円
こんなかんじです。

USDJPYに比べ最大ベット本数が少なくなりました。
Profit:28 RSIPeriod:23 RSIBL:35 RSIUL:66も面白いかもしれません。 






#property copyright "Copyright 2016/2/26,TACA&M"
#property link      "http://mt4kyoto.blogspot.jp/"
datetime TimeOld;
int Ticket;
extern int Profit=17;
extern int RSIPeriod=22;
extern int RSIBL=33;
extern int RSIUL=75;
int Continue;
double PrSub;
double PosAve;
int Mode=0;
string ModeText[3]={"Short Mode","None","Long Mode"};
extern double Lots=0.01;
int start(){if(Time[0]!=TimeOld){TimeOld=Time[0];
if(OrdersTotal()==0){Mode=0;}
if(Mode>=0)
{if(iRSI(NULL,1,RSIPeriod,0,1)<=RSIBL)
{int b=OrderSend(NULL,0,Lots,Ask,3,0,Ask+Profit*Point,"Long",1231,0,Red);Mode=1;Continue=1;}}
if(Mode<=0)
{if(iRSI(NULL,1,RSIPeriod,0,1)>=RSIUL)
{int c=OrderSend(NULL,1,Lots,Bid,3,0,Bid-Profit*Point,"Short",1231,0,Blue);Mode=-1;Continue=1;}}
if(iRSI(NULL,1,RSIPeriod,0,1)<=RSIBL)
{if(iRSI(NULL,1,RSIPeriod,0,1)>=RSIUL){Continue=0;}}
Averaging();
Comment("Lots:"+Lots+"\nPos:"+OrdersTotal()+"\n"+ModeText[Mode+1]);    
}return(0);}
int Averaging()
{ double LastPrice=0;double PosAll=0;double PosNum=0;
  for(int i=0;i<OrdersTotal();i++)
  {int d=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
    LastPrice=OrderOpenPrice();
    PosAll+=LastPrice*OrderLots();
    PosNum+=OrderLots();
  }
  if(PosNum==0){PosAve=0;}
  else{ PosAve=PosAll/PosNum;}   
  for(i=0;i<OrdersTotal();i++)
  { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==True)
    { Ticket=OrderTicket();
      if(OrderType()==0)
      {PrSub=PosAve+Profit*Point;}
      else
      {PrSub=PosAve-Profit*Point;} 
    int e=OrderModify(Ticket,OrderOpenPrice(),0,PrSub+0.5*Point,0,CLR_NONE);
    }
  }
return(0);
}











※極秘メモ
私ももう少し長生きしたいのであいまいな表現にしますが、
M資金は京都にあります。
この資金で再びバブルを起こす起爆剤にする為、
政府筋(文化庁)も躍起になって探しているところです。






2016年2月25日木曜日

【ニューコンセプト】一日一万円稼げるEAを作ろう!! スプレッド再検討

すべてのインディケーターを使い次の足を予測しようとしましたが、
どうしてもスプレッドに勝てません。

手数料(スプレッドを)を見てみました。
5分足の一日の取引数は288回 一回0.4Pipsということは一日で115.2Pipsです。
最初から計算しておけという話ですが...今更ながらにへこみます。

そこで時間足を変え30分足10pipsの利益を勝率60%に変更します。
一日19.2Pipsを超えられるでしょうか(汗)

【ニューコンセプト】一日一万円稼げるEAを作ろう!! MAD

平均の差で次の足の予測をしてみたいとおもいます 。
短期MAが長期より上 ゴールデンクロス様ならばLONG、逆はSHORTです。
最適化のグラフ、横が短期 縦が長期です。

結果はすべてないナスだったのですが、衝撃の内容です。
短期より長期が短い時のほうが利益が出ています。
つまり、短期の平均が長期を上回った時には下がりやすいということです。

MACDが0以上でSignalをデッドクロスの意味が解りました。


さて次は横をモードに変えてみました。EMAが一番濃く出ています。
デフォルトの平均4モードの中ではEMAが最強ということですね。
MACDがEMAなのも納得です。

#property copyright "Copyright 2016/2/25,TACA"
#property link      "http://mt4kyoto.blogspot.jp/"
int d;
extern string 平均期間="FMA:FastMA SMA:SlowMA";
extern int FMA=5;
extern int SMA=10;
extern string 平均の種類="0:SMA 1:EMA 2:SMMA 3:LWMA";
extern int Mode=0;
extern double Lots=0.01;
extern double Spread=4;
datetime TimeOld;
void start(){if(Time[0]!=TimeOld){TimeOld=Time[0];
if (iMA(NULL,0,FMA,0,Mode,0,1)>iMA(NULL,0,SMA,0,Mode,0,1))
{EntryLong();}
else
{EntryShort();}
}}
void EntryLong()
{if (MarketInfo(Symbol(),MODE_SPREAD) <= Spread)
{d = OrderSend(Symbol(),OP_BUY,Lots,Ask,5,Bid-0.02,Ask+0.02,"L",10000,0,Red);}
}
void EntryShort()
{if (MarketInfo(Symbol(),MODE_SPREAD) <= Spread)
{d = OrderSend(Symbol(),OP_SELL,Lots,Bid,5,Ask+0.02,Bid-0.02,"S",10000,0,Blue);}
}

2016年2月24日水曜日

【ニューコンセプト】一日一万円稼げるEAを作ろう!!RATE vs BackWashRate

前足のOPENから最高値とOPENから最低値の幅を比較して最高値との差が大きい時は買建、最低値との差が大きい時は売建です。
スプレッド以上の差がついています。
これも逆をやってみましょう~

#property copyright "Copyright 2016/2/24,TACA"
#property link      "http://mt4kyoto.blogspot.jp/"
int d;
extern double Lots=0.01;
extern double Spread=4;
datetime TimeOld;
void start(){if(Time[0]!=TimeOld){TimeOld=Time[0];
if(Open[1]-Low[1]==0){EntryLong();}
else
if (((High[1]-Open[1])/(Open[1]-Low[1]))<1)
{EntryShort();}
else
{EntryLong();}
}}
void EntryLong()
{if (MarketInfo(Symbol(),MODE_SPREAD) <= Spread)
{d = OrderSend(Symbol(),OP_BUY,Lots,Ask,5,Bid-0.02,Ask+0.02,"L",10000,0,Red);}
}
void EntryShort()
{if (MarketInfo(Symbol(),MODE_SPREAD) <= Spread)
{d = OrderSend(Symbol(),OP_SELL,Lots,Bid,5,Ask+0.02,Bid-0.02,"S",10000,0,Blue);}
}
RATEの逆を翻訳するとBackWashRateと出てきました。
なんかカッコいいのでw

ダメです 稼いで入るのですが、スプレッドの壁を超えれません。
前足の形や単純な平均では0.4pipsw超えれそうにありませんね。

時間軸の異なるMAの差(これってMACDかな)に挑戦です。



#property copyright "Copyright 2016/2/24,TACA"
#property link      "http://mt4kyoto.blogspot.jp/"
int d;
extern double Lots=0.01;
extern double Spread=4;
datetime TimeOld;
void start(){if(Time[0]!=TimeOld){TimeOld=Time[0];
if(Open[1]-Low[1]==0){EntryShort();}
else
if (((High[1]-Open[1])/(Open[1]-Low[1]))<1)
{EntryLong();}
else
{EntryShort();}
}}
void EntryLong()
{if (MarketInfo(Symbol(),MODE_SPREAD) <= Spread)
{d = OrderSend(Symbol(),OP_BUY,Lots,Ask,5,Bid-0.02,Ask+0.02,"L",10000,0,Red);}
}
void EntryShort()
{if (MarketInfo(Symbol(),MODE_SPREAD) <= Spread)
{d = OrderSend(Symbol(),OP_SELL,Lots,Bid,5,Ask+0.02,Bid-0.02,"S",10000,0,Blue);}
}

【ニューコンセプト】一日一万円稼げるEAを作ろう!!のりのり君 vs 往復ビンタ君

MAの上昇、下降に続いてはのりのり.君(江ノ電ではありません)

前バンドが上昇なら買建、下降は売建です。
ブログを始めたころに作成したH4物はいまでもいい稼ぎをしてくれているのですが、
5分足ですと全く駄目です。スプレッドよりさらにマイナスが出ています
ということは逆にすれば(以前もこの流れだったような...)




#property copyright "Copyright 2016/2/24,TACA"
#property link      "http://mt4kyoto.blogspot.jp/"
int d;
extern double Lots=0.01;
extern double Spread=4;
datetime TimeOld;
void start(){if(Time[0]!=TimeOld){TimeOld=Time[0];
if (Open[1]>Close[1])
{EntryShort();}
else
{EntryLong();}
}}
void EntryLong()
{if (MarketInfo(Symbol(),MODE_SPREAD) <= Spread)
{d = OrderSend(Symbol(),OP_BUY,Lots,Ask,5,Bid-0.02,Ask+0.02,"L",10000,0,Red);}
}
void EntryShort()
{if (MarketInfo(Symbol(),MODE_SPREAD) <= Spread)
{d = OrderSend(Symbol(),OP_SELL,Lots,Bid,5,Ask+0.02,Bid-0.02,"S",10000,0,Blue);}
}
往復ビンタ君の登場です(ジャジャーン♪)

前の足,BARが上昇なら売建、下降なら買建です。
のりのり君よりかは成績が良いのですが... 没

#property copyright "Copyright 2016/2/24,TACA"
#property link      "http://mt4kyoto.blogspot.jp/"
int d;
extern double Lots=0.01;
extern double Spread=4;
datetime TimeOld;
void start(){if(Time[0]!=TimeOld){TimeOld=Time[0];
if (Open[1]<Close[1])
{EntryShort();}
else
{EntryLong();}
}}
void EntryLong()
{if (MarketInfo(Symbol(),MODE_SPREAD) <= Spread)
{d = OrderSend(Symbol(),OP_BUY,Lots,Ask,5,Bid-0.02,Ask+0.02,"L",10000,0,Red);}
}
void EntryShort()
{if (MarketInfo(Symbol(),MODE_SPREAD) <= Spread)
{d = OrderSend(Symbol(),OP_SELL,Lots,Bid,5,Ask+0.02,Bid-0.02,"S",10000,0,Blue);}
}

【ニューコンセプト】一日一万円稼げるEAを作ろう!!  MA RMA

足が変わる時に各インジケーターに上がるか下がるかを予想してもらい。
その多数決で買建、売建を決めたいと思います。
もちろん精度のたかい物から低いものまでありますので、
精度にあわせて株券を発行し持ち株数が票数というイメージです。

まずは平均が上昇か下降かでエントリーします。
期間は2から100まで
結果は鴨川の流れのように一方的なマイナスです。
平均の上下は参考になりませんでした。
取引数63518xスプレッド4=254,072
損益は                                -241,568
スプレッドの壁は越えられませんね...

#property copyright "Copyright 2016/2/24,TACA"
#property link      "http://mt4kyoto.blogspot.jp/"
int d;
extern int 期間=5;
extern double Lots=0.01;
extern double Spread=4;
datetime TimeOld;
void start(){if(Time[0]!=TimeOld){TimeOld=Time[0];
if (iMA(NULL,0,期間,0,0,0,2)>iMA(NULL,0,期間,0,0,0,1))
{EntryShort();}
else
{EntryLong();}
}}
void EntryLong()
{if (MarketInfo(Symbol(),MODE_SPREAD) <= Spread)
{d = OrderSend(Symbol(),OP_BUY,Lots,Ask,5,Bid-0.02,Ask+0.02,"L",10000,0,Red);}
}
void EntryShort()
{if (MarketInfo(Symbol(),MODE_SPREAD) <= Spread)
{d = OrderSend(Symbol(),OP_SELL,Lots,Bid,5,Ask+0.02,Bid-0.02,"S",10000,0,Blue);}
}
一応逆も試してみたいと思います。
平均が下がると買い、上がると売り
逆MA RMAです。

一方的にマイナスですが損益が改善しています。
勝率も2%上がっています。

そもそも、平均の上昇、下降は前回と最古回の差で決まります。
平均に逆行する方がいいのかもしれませんがこれでは参考になりませんね。
没です。


#property copyright "Copyright 2016/2/24,TACA"
#property link      "http://mt4kyoto.blogspot.jp/"
int d;
extern int 期間=5;
extern double Lots=0.01;
extern double Spread=4;
datetime TimeOld;
void start(){if(Time[0]!=TimeOld){TimeOld=Time[0];
if (iMA(NULL,0,期間,0,0,0,2)<iMA(NULL,0,期間,0,0,0,1))
{EntryShort();}
else
{EntryLong();}
}}
void EntryLong()
{if (MarketInfo(Symbol(),MODE_SPREAD) <= Spread)
{d = OrderSend(Symbol(),OP_BUY,Lots,Ask,5,Bid-0.02,Ask+0.02,"L",10000,0,Red);}
}
void EntryShort()
{if (MarketInfo(Symbol(),MODE_SPREAD) <= Spread)
{d = OrderSend(Symbol(),OP_SELL,Lots,Bid,5,Ask+0.02,Bid-0.02,"S",10000,0,Blue);}
}



【ニューコンセプト】一日一万円稼げるEAを作ろう!! お金大好き!!

2015年9月にMT4と出会い半年、数えてみると180個のEAを作成していました。
バージョン違いや多少の改良なども含まれていますが、それぞれにバックテストをしていると考えると恐ろしい数です。もちろんそのほかにも莫大な数の無料EAのバックテストもしています。
楽をしてEAで稼ぐためにものすごい努力をしているというのは複雑ですね。

EAを実際に動かしてみてどれくらい儲かると評価をしていたのですが
今回はコンセプトを改め一日一万円儲かる理論でEAを作成します。

インディケーターがエントリータイミングを計るのではなく足ごとにインディケーターが上がるか下がるかを予想します。
10,000単位で
日足ですとエントリー回数は1回/日で100pips/回、勝率は100%必要になります。
100%はタイムトラベラーで無いと無理です。

4時間足の場合 6回/日 17pips/回 勝率100%
            25pips/回 勝率83%
            50pips/回 勝率66%
単回勝率83%は預言者レベルです。毎日伏見稲荷と清水寺そしてノートルダム教会を参拝しても出せない勝率です。
エントリー後24時間でも50pisの変動確率は30%ですのでこちらも莫大な初期証拠金の必要が予想されます。

1時間足の場合 24回/日 
pips/回 勝率
5 100%
5 96%
5 92%
6 88%
7 83%
8 79%
9 75%
10 71%
13 67%
17 63%
25 58%
50 54%
(面倒なのでエクセル貼り付けごめんなさい)
過去のデーターで24時間後には50%の確率で30pipsの上下変動が見込まれます。
25pips/回 58%で24本立てたとすると初期証拠金100万円う~ん><;

次は30分足です。
pips/回勝率
3100%
385%
477%
571%
669%
767%
865%
963%
1060%
1358%
1756%
2554%
5052%
黄色のラインのところですが10pipsで勝率は60%です。
4時間後の10pipsの上下変動は50%を超えています。
8本80,000単位 初期証拠金は40万円
近づいてきています♪

15分足
pips/回勝率
2100%
376%
464%
560%
659%
758%
857%
956%
1055%
1354%
1753%
2552%
5051%
1時間後の5pipsの上下変動50%越えです。
4本 初期証拠金20万円!
初期証拠金が減り、決算までの時間も短くなっています。

5分足
pips/回勝率
1100%
167%
259%
356%
455%
553%
852%
1351%
5050%
5分後に1pips動く確率は上下共63%です。
1pips 67% 初期証拠金50,000 勝率67%がネックです。

15分後に2pips動くのは上下共に60%を超えています。
2pips 59% 初期証拠金150,000 

30分後に4pipsは上下共に50%
4pips 55% 初期証拠金300,000


スプレッド0.4pipsを背負いつつ勝率60%のT/p S/L 2pipsが目標です。
理論上の必要証拠金は15万ですが30万円で考えてみたいと思います。












2016年2月23日火曜日

MACD💛RSI 可変プロフィット システム

いつも思うのですが、EAのセッティング画面、
アルファベットでゴチャゴチャ変数名が出て難解です。

そこで!!
文字列にてRSI設定、MACD設定などとグループタイトルをつけてみました。
グループタイトルの値には簡単な説明
さらに今まではRSIPeriodやRSIPとしていたものをRSI期間に、
その他もわかりやすくしてみました。
FEMAは短期EMAにしようかと思ったのですがこれはこのままでw
うむ見やすくなった(自己満増?)



さて、今回は15分足一本釣りです。同時に一本しかエントリーしません。
MACDが0より上か下か、MACDがSignalより上か下かそしてRSIがどこまで伸びているかでエントリーをします。利益確定値は過去五日間の変動幅で決めています。RSI基準でロスカット!
よりたくさんの指標を使うことで精度を上げていますが、取引数は少なくなってしまいました。
5,000円スタートいつもの11か月で3,030円の利益 なかなかです
長期安定化させるにはRSIの上下線の幅を増やしてください。取引回数を増やすには逆に幅を減らしてください。



以下ソースコードです。
猫の日(2月22日 222⇒にゃんにゃんにゃん)の完成を目指していたのですが地震対策で間に合いませんでした(汗)

#property copyright "Copyright 2016/2/22,TACA@Cat Day"
#property link      "http://mt4kyoto.blogspot.jp/"
#define MAGIC 222
extern string RSI設定="RSIの期間と上下線の設定";
extern int RSI期間=23;
extern int RSI上線=71;
extern int RSI下線=32;

extern string MACD設定="FastEMA,SlowEMA,Signalの設定";
extern int FEMA=12;
extern int SEMA=26;
extern int Signal=9;

extern string 約定幅設定="<利益算定期間>日間の価格幅を<割数>で割った価格";
extern double 利益算定期間=6;
extern double 割数=1;

extern string ロットスプレッド="";
extern double Lots=0.01;
extern int Spread=5;
int d;//dummy
void start(){
if(OrdersTotal()==0){
if(iMACD(NULL,PERIOD_CURRENT,FEMA,SEMA,Signal,0,0,0)<0){
  if(iMACD(NULL,PERIOD_CURRENT,FEMA,SEMA,Signal,0,0,0)>iMACD(NULL,PERIOD_CURRENT,FEMA,SEMA,Signal,0,1,0)){
    if(iRSI(NULL,PERIOD_CURRENT,RSI期間,0,0)<RSI下線){EntryLong();}}}
  
if(iMACD(NULL,PERIOD_CURRENT,FEMA,SEMA,Signal,0,0,0)>0){
  if(iMACD(NULL,PERIOD_CURRENT,FEMA,SEMA,Signal,0,0,0)<iMACD(NULL,PERIOD_CURRENT,FEMA,SEMA,Signal,0,1,0)){
    if(iRSI(NULL,PERIOD_CURRENT,RSI期間,0,0)>RSI上線){EntryShort();}}}  
}
else
{
d=OrderSelect(0,SELECT_BY_POS);
if(OrderType()==0){
  if(iRSI(NULL,PERIOD_CURRENT,RSI期間,0,0)>35){Exit();}}
if(OrderType()==1){
  if(iRSI(NULL,PERIOD_CURRENT,RSI期間,0,0)<65){Exit();}}
}
}
void EntryLong(){if (MarketInfo(Symbol(),MODE_SPREAD) <= Spread)
{d = OrderSend(Symbol(),OP_BUY,Lots,Ask,5,0,Ask+Wide(利益算定期間)/割数,"RSI&MACD L",MAGIC,0,Red);}}
void EntryShort(){if (MarketInfo(Symbol(),MODE_SPREAD) <= Spread)
{d = OrderSend(Symbol(),OP_SELL,Lots,Bid,5,0,Bid-Wide(利益算定期間)/割数,"RSI&MACD S",MAGIC,0,Blue);}}
double Wide(double Wides){
double Ret=0;
for (int i=0;i<Wides;i++){
Ret+=iHigh(NULL,PERIOD_D1,i)-iLow(NULL,PERIOD_D1,i);
}
return(Ret/Wides);}
void Exit(){
d=OrderSelect(0,SELECT_BY_POS);
d=OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),5,clrNONE);
}



RSI期間 29
RSI上線 73
RSI下線 33
利益は半減しますが数年放置設定です。

2016年2月22日月曜日

Manneken設定とRSI Averagingソース  Het spijt me!

ご質問を頂きました。
メールでのご連絡を希望されていたのですが、
メールアドレスがわからなかったのでこちらに^^;

①Mannekenの動作不良について
え?動作不良?あれだけテストを繰り返しての公開ですので断言します!!
動作不良はありえません!!マネケンはうごきまぁす!!

そこでソースをコピペしてバックテストに...
う ご か な い(汗;)

ソースではDevL DevSを3にしていますがバックテストは4.0になっています。
ただしくは4.0です。スプレッドも14になっていますがこちらはソースが正しく5です。
(スプレッドはバックテストではどちらでも稼働します。)
スプレッド14はAUDJPYでよく使いますのでここで混じってしまったと思います。
本当にごめんなさいmm 
ご指摘ありがとうございます!!

②RSI Averagingのソースについて
ソースはブログに張り付けてあるんだけどなぁ...
え?ソースが張ってない?以下同文

張ってませんでした...重ね重ね誠に申し訳ございませんmm
それでは改めてソースです。

#property copyright "Copyright 2015/12/31,TACA"
#property link      "http://mt4kyoto.blogspot.jp/"
datetime TimeOld;
int Ticket;
extern int Profit=15;
extern int RSIPeriod=17;
extern int RSIBL=33;
extern int RSIUL=75;
int Continue;
double PrSub;
double PosAve;
int Mode=0;
extern double Lots=0.01;
int start(){if(Time[0]!=TimeOld){TimeOld=Time[0];
if(OrdersTotal()==0){Mode=0;}
if(Mode>=0)
{if(iRSI(NULL,1,RSIPeriod,0,1)<=RSIBL)
{int b=OrderSend(NULL,0,Lots,Ask,3,0,Bid+Profit*Point,"Long",1231,0,Red);Mode=1;Continue=1;}}
if(Mode<=0)
{if(iRSI(NULL,1,RSIPeriod,0,1)>=RSIUL)
{int c=OrderSend(NULL,1,Lots,Bid,3,0,Bid-Profit*Point,"Short",1231,0,Blue);Mode=-1;Continue=1;}}
if(iRSI(NULL,1,RSIPeriod,0,1)<=RSIBL)
{if(iRSI(NULL,1,RSIPeriod,0,1)>=RSIUL){Continue=0;}}
Averaging();    
}return(0);}
int Averaging()
{ double LastPrice=0;double PosAll=0;double PosNum=0;
  for(int i=0;i<OrdersTotal();i++)
  {int d=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
    LastPrice=OrderOpenPrice();
    PosAll+=LastPrice*OrderLots();
    PosNum+=OrderLots();
  }
  if(PosNum==0){PosAve=0;}
  else{ PosAve=PosAll/PosNum;}   
  for(i=0;i<OrdersTotal();i++)
  { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==True)
    { Ticket=OrderTicket();
      if(OrderType()==0)
      {PrSub=PosAve+Profit*Point;}
      else
      {PrSub=PosAve-Profit*Point;} 
    int e=OrderModify(Ticket,OrderOpenPrice(),0,PrSub,0,CLR_NONE);
    }
  }
return(0);
}


バックテストを全ティックでやり直しました。


2016年2月19日金曜日

超低金利時代のEA Swapper Joe!! スワップが熱い!

連帯銀行アベノの危機、撃滅!クロダ総裁の罠 銀行系最後の秘宝 暗黒黒田教の洞窟 銀行帝国の野望 黒田魔獣の挑戦 美しき日銀 悪霊都市アベノ(上)(下) アベノミクスの幻獣 クロダの聖少女 水の日銀 黒田の狂宴 虹色の地獄 アベノミの嵐 などとマイナス金利の影響を予測するいろいろなことが言われていますが、日銀の金利が下がったということはスワップ狙いのスワッパーにとっては将来は非常に明るいかと思います。

FXのスワップはご存知の通り一部業者を除いてはNYクローズ時の建玉につきます。
クローズ直前の建玉も20時間前に買った建玉も公平にいただけます。
AUD/JPY10,000単位で40円前後かと思います。

では、クローズ直前にエントリークローズ直後にイグジットすれば儲かると誰も一度は考えたことがあるでしょう。
しかし、チャートは約5分前から上昇し、クローズ後に下降する傾向にあります。
そこで、日足5本 23:55にエントリー 少額の上昇でクローズし、もしも最悪クローズできなかった時は翌日にエントリーしたものと平均化するEAを作りました。
名付けてスワッパージョー(ロックマンではありません!!)
プロフィットは60でいつもの期間(11か月)利益は11,338円+スワップ40円x320日x6/10=約18,000円
雑多ですが10万円が年間12万円に20%の利率です。
平均化の過程で重複でもらえるスワップもあります。

黒田バズーカ3rd vs EA SwapperJoe どうでしょうか?






#property copyright "Copyright 2016/2/19,TACA"
#property link      "http://mt4kyoto.blogspot.jp/"
#define MAGIC 2355
extern int Profit=60;    
extern double Lots=0.01;   
extern int Spread=5;      
double PosAve;      
datetime TimeOld; 
int d;
void start(){
{if (Time[0] != TimeOld){TimeOld = Time[0];
if(Hour()==23&&Minute()==55){Entry();}
}}}
void Entry(){
d=OrderSend(Symbol(),OP_BUY,Lots,Ask,5,0,0,"Swapper Joe!!",MAGIC,0,Red);
Averaging();
}
void Averaging(){
 PosAve=0;double LastPrice=0;double PosAll=0;double PosNum=0;
  for(int i=0;i<OrdersTotal();i++)
  { d=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
    LastPrice=OrderOpenPrice();
    PosAll+=LastPrice*OrderLots();
    PosNum+=OrderLots();
  }
  if(PosNum==0){PosAve=0;}
  else{ PosAve=PosAll/PosNum;}   
  for(i=0;i<OrdersTotal();i++)
  { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==True)
    { d=OrderModify(OrderTicket(),OrderOpenPrice(),0,PosAve+Profit*Point,0,CLR_NONE);}
  }
}


2016年2月15日月曜日

【一例紹介】最適化の期間検討 

久々のブログです。ヨーロッパから帰ってきました。
ブリュッセル⇒アントワープ⇒ロッテルダム⇒デルフト⇒デン・ハーグ⇒ライデン⇒アムステルダム⇒マーストリヒト⇒デュッセルドルフ⇒ケルンと12日間、電車の旅です。

特筆すべきは完全放置していたMT4が旅費+10万ほど稼いでいてくれたことです^^
細かいことは面倒なのであれですが自作派ですので、このブログのEAがほとんどです。
(ブログを読ませるための誘導ではありませんよ)

さて今日は、バックテストの期間についてです。
いろいろな意見があります。
①長ければ長いほどいい派 バックテストの時間がかかるのが難点ですが、急落、急騰、長期レンジや連続トレンドなどなど色々な経験をした上での結果になるので長期放置には非常に良いと思います。
②1,000回以上派 これもよく聞く意見ですが、根拠に乏しいと思います。EXCELで50%の確率を1,000回実施してもかなりの確率で5%以上の誤差が出ます。
③直近のデータ派 為替は集団心理で動くからあまり昔のデーターには信頼性がないとする意見。

以前②に関して記事を書いている複数の先生方になぜ1,000回なのかメールで意見を伺った時にまともな回答、エビデンスを持っている先生はいませんでした。私は1,000回は都市伝説と考えています。

そこで直近の1ヶ月、1年、5年の最適化を行いその損益最高の条件で翌月一か月いくら稼げるかやってみました。
今回は設定条件が多い方がいいのでMACDでFastEMA,SlowEMA,Signal,StopLossの四つで最適化しました。(FastEMA 6-19,SlowEMA 19-39,Signal 4-12,StopLoss 0.01-0.2)
ソースコードは下の方に記載しておきます。

最適化の結果ですが、
1ヶ月 8/35/4/0.01
1年  6/19/4/0.01
そして5年は1年と同じ結果になりました...

その条件で、の翌月1ケ月走らせた結果ですが、
1か月    2,197
1年、5年   2,874
非常にマイナスになりがちなEAなのですが両方プラスになりました。
しかし短期より長期の方がよい結果。一例だけなのですが今回は①>③ですね。
いろいろなEAで時期を何個かやってみると面白そうです。



上が一ケ月、下が一年、五年の最高結果設定で翌月実施です。
 






#property copyright "Copyright 2016/2/15,TACA"
#property link      "http://mt4kyoto.blogspot.jp/"
#define MAGIC 11010111
extern int Fma=12;
extern int Sma=26;
extern int Sig=9;
extern double SLo=0.1;
extern double Lots=0.01;
extern int Spread=5;
string Com="MACDtest";
int d;
void start(){
if (iMACD(NULL,0,Fma,Sma,Sig,0,0,2)<iMACD(NULL,0,Fma,Sma,Sig,0,1,2)){
if(iMACD(NULL,0,Fma,Sma,Sig,0,0,1)>iMACD(NULL,0,Fma,Sma,Sig,0,1,1)){
if(iMACD(NULL,0,Fma,Sma,Sig,0,1,1)<0)
{Exit();EntryLong();}}}
if (iMACD(NULL,0,Fma,Sma,Sig,0,0,2)>iMACD(NULL,0,Fma,Sma,Sig,0,1,2)){
if(iMACD(NULL,0,Fma,Sma,Sig,0,0,1)<iMACD(NULL,0,Fma,Sma,Sig,0,1,1)){
if(iMACD(NULL,0,Fma,Sma,Sig,0,1,1)>0)
{Exit();EntryShort();}}}
}
void EntryLong()
{if (MarketInfo(Symbol(),MODE_SPREAD) <= Spread)
{d = OrderSend(Symbol(),OP_BUY,Lots,Ask,5,Ask-SLo,0,Com+"tLong",MAGIC,0,Red);}}
void EntryShort()
{if (MarketInfo(Symbol(),MODE_SPREAD) <= Spread)
{d = OrderSend(Symbol(),OP_SELL,Lots,Bid,5,Bid+SLo,0,Com+"SHORT",MAGIC,0,Blue);}}
void Exit()
{d=OrderSelect(0,SELECT_BY_POS);
d=OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),5,clrGold);}




2016年2月3日水曜日

EA Manneken Pis 少し構想と変わりました。

昨日はブリュッセルからアントワープでフランダースの犬の教会を見学、ロッテルダムへ来ました。
宮藤勘九郎もロッテルダムにいるようです。

時差ボケでウトウトしながらもICの中で、EA Manneken Pisを検討していました。
小便小僧をみて長期と短期のボリンジャーバンドの二重バンドの違いによるエントリーをひらめいたのです。長期100の1σは安定しているため短期20の2σに比べてトレンドがわかりやすく、短期のバンドが長期を超えるときには大きな変動のシグナルになると考えたのですが...

構想はよかったのですが結果は惨敗 まったく無意味でした。
構想自体はよかったのですがだましが極端に多くなってしまいました。
構想はよかったんですがね...

さてその代わりにバンド4σボンバーです。
3σに収まるのは99.73%ですが4σは99.99% FourNineです。

ロジックは4σを超えている間はずっと反対にベットします。
一分足でも取引総数はわずか83 週一、二回のペースですね。
いつもの期間でやったのですが、売り6買い77
2015年はレンジ相場にみえてそうでもなっかったという事でしょうか。
LONGのみで作ったEAがうまくいくはずです。

ソースコードも載せておきます活用ください。
マジックナンバーは2泊のホテル代です。




#property copyright "Copyright 2016/2/2,TACA@Brussel"
#property link      "http://mt4kyoto.blogspot.jp/"
#define MAGIC 197 //EUR
datetime TimeOld;
extern int Period=20;
extern double DevL=3;
extern double DevS=3;
extern double Lots=0.01;
extern double Profit=970;
extern int Spread=5;
string Comments="Manneken";
double PosAve;
int Slip=3;
int d;
int i;
bool Asi;
int start(){
if(!Asi){
if(OrdersTotal()==0)
   {
   if(iBands(NULL,0,Period,DevL,0,0,1,0)<=Close[0])
      {EntryShort();}
   else
      if(iBands(NULL,0,Period,DevS,0,0,2,0)>=Close[0])
         {EntryLong(); }
   }
else
   {
   d=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
   if (OrderType()==0)
      {if(iBands(NULL,0,Period,DevL,0,0,1,0)<=Close[0]){EntryLong(); }}
   else  
      {if(iBands(NULL,0,Period,DevS,0,0,2,0)>=Close[0]){EntryShort();}}
   }
   }
if(Time[0]!=TimeOld){TimeOld=Time[0];Asi=0;}
return(0);}
void EntryLong()
{if (MarketInfo(Symbol(),MODE_SPREAD) <= Spread)
{d = OrderSend(Symbol(),OP_BUY,Lots,Ask,5,0,0,Comments,MAGIC,0,Red);}
Asi=1;Averaging();
}
void EntryShort()
{if (MarketInfo(Symbol(),MODE_SPREAD) <= Spread)
{d = OrderSend(Symbol(),OP_SELL,Lots,Bid,5,0,0,Comments,MAGIC,0,Blue);}
Asi=1;Averaging();
}
void Averaging()
{double PosAll=0;double PosNum=0;double PrSub;
  for(i=0;i<OrdersTotal();i++)
  {d=OrderSelect(i,SELECT_BY_POS,MODE_TRADES);
    PosAll+=OrderOpenPrice()*OrderLots();
    PosNum+=OrderLots();
  }
  if(PosNum==0){PosAve=0;}
  else{ PosAve=PosAll/PosNum;}  
  for(i=0;i<OrdersTotal();i++)
  { if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==True)
    { if(OrderType()==0)
      {PrSub=PosAve+Profit*Point;}
      else
      {PrSub=PosAve-Profit*Point;}
    int e=OrderModify(OrderTicket(),OrderOpenPrice(),0,PrSub,0,CLR_NONE);
    }
  }
}






2016年2月1日月曜日

EA MANNEKEN PIS構想

さて、ブリュッセルです。
飛行機の中でひたすらバックテストをする姿は客室乗務員には異様に見えたかもしれません。
ブリュッセルと言えばEUROの首都、そしてブリュッセル証券取引所跡があります。
もうひとつ有名なのは小●小僧です。
●便小僧をみていてふと思いました。
ボリンジャーバンド1分足で20の2.0と100の1.0(5分足のイメージ)で小●のようにエントリーしたらどうでしょうか?
100の1.0を超えたらエントリー20の2.0の逆サイドが方向転換したらクローズです。

EA MANNEKEN PISです。帰国したら、作ってみます。