2017年2月26日日曜日

REDER バルサラ破産確率によると破たんしない複数ポジションEA


バルサラの破産確立では3要素で計算をし破産するかどうかを算出するが
資金の使用率についてを考えてみました。
どんなきけんなEAでも1京円持っていて1000通貨ペアでちびちびエントリーしていると決して破産しないという計算になります。

そこを鑑みて作成したのがEA REDER
いかがでしょうか

input int Magic=25600;
double all;
int i,c;
void OnTick()
{
 all=0;c=0;
for(i=OrdersTotal()-1;i>=0;i--)
  {
  OrderSelect(i,0);
  if(OrderMagicNumber()==Magic){all+=OrderOpenPrice();c++;}
  }
  if(c==0){c=1;}  
if(all/c+1<Close[0])
  {
  for(i=OrdersTotal()-1;i>=0;i--)
    {
    OrderSelect(i,0);
    if(OrderMagicNumber()==Magic){OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),0);}
    }
  }

  if(all/c-5>Close[0]||all==0){OrderSend("",0,0.01,Ask,0,0,Ask+1,"Reder",Magic);}
}

2017年2月21日火曜日

【考察】世間のEAの99%は半自動!!

自動売買とは何も考えずにセットすればロジックに沿って売買をしてくれる物です。
(あっているかな?)

しかし、MT4を運用する上で100万円入金して2ロットエントリして1万円少しは余剰金といった風に資金管理は自分でするものがほとんどです。
これでは半自動ですね!

複利(まねーまねーじめんと)などもありますが、MT4を再起動するとリセットされるものがほとんどです。これも全自動とはいえません。

Vシステムは口座残の最大金額をエントリーするものでしたが、1EA1口座での運用が一つの壁でした。
口座を分けられるのはOANDA社とFOREX.COM(要書類)だけです・・・

ここらへんに次世代EAのヒントがありそうです





2017年2月12日日曜日

EA Fortune 坂田五法 フラクタルのTACA的解釈!!

WELCOME Labor Pains Memory EA!!

ろうそく足の形をベースに相場を読む坂田五法やフラクタルは奥が深く神髄まではなかなか理解できません。

そういえば山中先生のボリンジャー本にもろうそくとバンドの位置で云々というものがありましたが、EAにするといい成績は出ませんでした。神髄の理解はやはり難しいものですね。そう山中先生と言えば2/18にセミナーがあるようです。
https://www.dukascopy.jp/forex/seminar/
ご講演を是非とも聞いてみたいものですが、京都にいるので残念です。

さて、講演スポンサーのデュカスコピーと言えばリアルティックデーターを無料配信しています。デュカスコピーのリアルティックデーターを使用してバックテストをした結果は他のブローカーと相関性があるのでしょうか?いつかブローカーごとのリアルティックの比較もしなければなりませんね。

今回は1分足で最高値と現在の価格差が一定以上あればショートエントリー、逆でロングエントリーをします。たった一本のろうそく足で条件設定するのは究極のシンプルさです。

そしてもう一つ!
リアルティックをイメージして下さい。上下に変動しながら推移します。
スリッページを入れると損する方に滑ることがありますが、逆に得するほうに0・001円動かした価格で発注します。5回発注してダメな時は諦めます。
このTACAエントリー手法を使うと0.1pipsスリッページが減ります。


//**********************************************
//**This is Made for people who loves My girl.**
//**********************************************
#property strict
input double Lot=0.01;//Lots
input string Com="Fortune";//Comment
input int Mag=20170212;//Magic Number
extern double SL=0.02;
input double Dif=0.1;
string Sym=Symbol();
int i,d,OT;
double Rate,CS;
void OnTick()
{
OT();if(!OT){
if(High[0]-Dif>Close[0]){OSL();}
if(Low[0] +Dif<Close[0]){OSS();}
}
CT();
}
//OrderSendLong
void OSL(){Rate=Ask-0.001;for(i=0;i<5;i++){if(OrderSend(Sym,0,Lot,Rate,0,Rate-SL,0,Com,Mag)>0){CS=Rate-SL;break;}}}
//OrderSendShort
void OSS(){Rate=Bid+0.001;for(i=0;i<5;i++){if(OrderSend(Sym,1,Lot,Rate,0,Rate+SL,0,Com,Mag)>0){CS=Rate+SL;break;}}}
//OrdersTotal
void OT(){OT=0;for(i=OrdersTotal()-1;i>=0;i--){d=OrderSelect(i,0);if(OrderMagicNumber()==Mag)OT++;}}
//ChandelierTrailing
void CT(){
if(OrderType()==OP_SELL&&CS>Bid+SL){CS=Bid+SL;d=OrderModify(OrderTicket(),OrderOpenPrice(),CS,0,0);}
if(OrderType()==OP_BUY &&CS<Ask-SL){CS=Ask-SL;d=OrderModify(OrderTicket(),OrderOpenPrice(),CS,0,0);}
}

2017年2月11日土曜日

HUSTLER ゲロンチョリ―

SUZUKIのハスラーのCMをみて驚きました!
ゲロンチョリ―のポーズをしている人がいます!!!

そこで作成中のEAを緊急公開することにw
※決してゲロンチョリを訴えたかっただけではありませんよ♪
EA HUSTLER GERONCHORI(ハスラー ゲロンチョリ)です


input double lots=0.01,SL=0.5;int d,O;double CS;void OnTick(){O=OrdersTotal();if(iBands("",1,20,2,0,0,1,1)<Close[1]&&iRSI("",5,14,0,1)>75&&!O){d=OrderSend("",0,lots,Ask,0,Ask-SL,0,"Hustler-Geronchori",660);CS=Bid-SL;}if(O){d=OrderSelect(0,0);if(OrderType()==0&&CS<Ask-SL){CS=Ask-SL;d=OrderModify(OrderTicket(),OrderOpenPrice(),CS,0,0);}}}


LONGのみで未チューンです。
勝率が41%を超えていますのでシャンデリアトレーリングとしては優秀です。
そして高速EAの為に改行、スペースは一切使っていません。
ソースコードはわずか1行w 実用できるEAとしては世界で一番短いEAかもしれませんw

2017年2月10日金曜日

EA MAcrisp

CRISPyはティック単位で動作させていましたが、スプレッドのご指摘を頂戴いたしました。そこで一気にH1で雇用統計縛り無すべての時間で動作させてみました。

なずけてMAcrisp 平均でロングショートを分けようと思ったのですが、途中でスプレッドに関心が移ってしまいました(^^;) MAはその名残です

CRISPは四条河原町にあったクリスピークリームドーナッツが閉店した追悼ネームです
文京区にはあるかな~


extern double lot=0.01;
extern int MAGIC=72;
extern double SL=0.01;
int d;
datetime OT;
double CSL,CSS;
void OnTick()
{
if(Time[0]!=OT)
  {
  OT=Time[0];
  if(!OrdersTotal())
    {
    {d=OrderSend(Symbol(),OP_SELL,lot,Bid,0,Bid+SL,0,"CRISP-TACA",MAGIC);CSS=Bid+SL;}
    {d=OrderSend(Symbol(),OP_BUY,lot,Ask,0,Ask-SL,0,"CRISP-TACA",MAGIC);CSL=Ask-SL;}
    }
  else
    {
    for(int i=OrdersTotal()-1;i>=0;i--)
      {
      d=OrderSelect(i,0);
      if(OrderMagicNumber()==MAGIC)
        {  
        if(OrderType()==OP_SELL&&CSS>Bid+SL){CSS=Bid+SL;d=OrderModify(OrderTicket(),OrderOpenPrice(),CSS,OrderTakeProfit(),0);}
        if(OrderType()==OP_BUY &&CSL<Ask-SL){CSL=Ask-SL;d=OrderModify(OrderTicket(),OrderOpenPrice(),CSL,OrderTakeProfit(),0);}
        }
      }
    }
  }
}




9-11行目で足変更ごとの動作に制御しています

そういえば最近GOOGLEの検索結果のフォントが四角くなったなぁー

EA CRISPy こ、こいつは・・・リアル稼働させなくっちゃ!!

先程のEACRISPを雇用統計の時間限定で動作するようにしました。
金曜日の7日までのGMT+3で15:30のみ両建てオーダーします。
両方が決済された時には時間内であれば何度でもオーダーを繰り返します!
↑活性が高く上下に激しく動く時のイメージです。

さ~て結果はどうでしょうか
2005-2016
勝率は48.9%
平均勝トレード105 平均負けトレード -9.74

このEAはスピードを要求されますので高速な環境が必要ですね。

うーんこの結果は興奮します!





EA CRISP

何回か似たようなものを作っている気がしますが・・・
ポジションを持っていなければ両建てエントリーし
それぞれにシャンデリアストップをかけます。

ボラティリティーの高い時は有効なEAな気がします。




extern double lot=0.01;
extern int MAGIC=72;
extern double SL=0.2;
int d;
double CSL,CSS;
void OnTick()
{
if(!OrdersTotal())
{
d=OrderSend(Symbol(),OP_SELL,lot,Bid,0,Bid+SL,0,"CRISP-TACA",MAGIC);CSS=Bid+SL;
d=OrderSend(Symbol(),OP_BUY,lot,Ask,0,Ask-SL,0,"CRISP-TACA",MAGIC);CSL=Ask-SL;
}
else
{
for(int i=OrdersTotal()-1;i>=0;i--)
  {
  d=OrderSelect(i,0);
  if(OrderMagicNumber()==MAGIC)
    {     
    if(OrderType()==OP_SELL&&CSS>Bid+SL){CSS=Bid+SL;d=OrderModify(OrderTicket(),OrderOpenPrice(),CSS,OrderTakeProfit(),0);}
    if(OrderType()==OP_BUY &&CSL<Ask-SL){CSL=Ask-SL;d=OrderModify(OrderTicket(),OrderOpenPrice(),CSL,OrderTakeProfit(),0);}
    }
  }
}
}

2017年2月8日水曜日

RSI4 ソース張り忘れていました。 

ソースはじゃじゃーん

extern double lot=0.01,SL=0.6;
input int Magic1=911,Magic2=356;
int d,t[2];
bool t1f=1,t2f=1;
double CS;
void OnTick()
  {
    OrderT();
    if(t1f)
      {CT(0);}
    else
      {
      if(MAD()>0.01&&RSI(15)<65&&RSI(60)<65){t[0]=OrderSend(Symbol(),OP_SELL,lot,Bid,0,Bid+SL,0,"RSI-TACA",Magic1);CS=Bid+SL;}
      if(MAD()<-0.01&&RSI(15)>35&&RSI(60)>35){t[0]=OrderSend(Symbol(),OP_BUY,lot,Ask,0,Ask-SL,0,"RSI-TACA",Magic1);CS=Ask-SL;}
      }
   if(t2f)
      {CT(1);}
    else
      {
      if(RSI(5)>65&&RSI(15)<65&&RSI(60)<65){t[1]=OrderSend(Symbol(),OP_SELL,lot,Bid,0,Bid+SL,0,"RSI-TACA",Magic2);CS=Bid+SL;}
      if(RSI(5)<35&&RSI(15)>35&&RSI(60)>35){t[1]=OrderSend(Symbol(),OP_BUY ,lot,Ask,0,Ask-SL,0,"RSI-TACA",Magic2);CS=Ask-SL;}
      }
  }
double RSI(int TimeFrame){return(iRSI(Symbol(),TimeFrame,14,PRICE_CLOSE,1));}
double MAD(){return(Close[1]-iMA(Symbol(),5,14,0,MODE_SMA,PRICE_CLOSE,1));}
void OrderT()
{
t1f=false;t2f=false;
for(int i=OrdersTotal()-1;i>=0;i--)
  {
  d=OrderSelect(i,0);
  if(OrderTicket()==t[0]){t1f=true;}
  if(OrderTicket()==t[1]){t2f=true;}
  }
}
void CT(int c)
{
d=OrderSelect(t[c],1);    
if(OrderType()==OP_SELL&&CS>Bid+SL){CS=Bid+SL;d=OrderModify(OrderTicket(),OrderOpenPrice(),CS,0,0);}
if(OrderType()==OP_BUY &&CS<Ask-SL){CS=Ask-SL;d=OrderModify(OrderTicket(),OrderOpenPrice(),CS,0,0);}
}

EA RSI4 (RSIx3) + (MA-d+RSIx2)

RSI3は 時間足RSIを三つ組み合わせたものでしたが、RSI4は RSI3と同時に平均乖離とRSI二個を組み合わせたものを同時に動かしています。

後半だれてみえますが、こちらの方が安定しています。(謎)
タイプ的にはしにもどきですね♪

EA RSI3   

 就職して一ヶ月が過ぎましたところでいきなり長期のお休みを頂いています。
会社の皆さまごめんなさい。
と思っているところに更にインフルエンザで2人ほどダウン・・・・
胸が張り裂けそうです・・・

さて気を取り直して休みの間はEA作成三昧と思っていたのですが、
なかなか忙しいものです、引っ越しに、確定申告に、妻の出産(女のコあと3日の予定)

こそこそとかくれてRSIの探求をしておりました。

①RSIは買われすぎ、売られすぎの指標
②上足のRSIは買われすぎ売られすぎゾーンに入っていないほうがいい。
③USDJPYではNY時間中盤から後半に成績が悪くなる。

そして今回作ったのは、5分RSIは65超過、15分、60分RSIは65未満でショートエントリー シャンデリアストップ 幅は 20-4時は0.6円 他は0.4円です。


extern double lot=0.01,SL1=0.6,SL2=0.4;input int Magic=911;int d;double CS,SL;
void OnTick(){if(Hour()<=04||Hour()>=20){SL=SL1;}else{SL=SL2;}
   if(OrdersTotal()==0)
      {if(RSI(5)>65&&RSI(15)<65&&RSI(60)<65){d=OrderSend(Symbol(),OP_SELL,lot,Bid,0,Bid+SL,0,"RSI-TACA",Magic);CS=Bid+SL;}
       if(RSI(5)<35&&RSI(15)>35&&RSI(60)>35){d=OrderSend(Symbol(),OP_BUY ,lot,Ask,0,Ask-SL,0,"RSI-TACA",Magic);CS=Bid-SL;}}
   else{d=OrderSelect(0,0);    
       if(OrderType()==OP_SELL&&CS>Bid+SL){CS=Bid+SL;d=OrderModify(OrderTicket(),OrderOpenPrice(),CS,0,0);}
       if(OrderType()==OP_BUY &&CS<Ask-SL){CS=Ask-SL;d=OrderModify(OrderTicket(),OrderOpenPrice(),CS,0,0);}}}
double RSI(int TimeFrame){return(iRSI(Symbol(),TimeFrame,14,PRICE_CLOSE,1));}

最近は読みやすくしようとできるだけ省略はやめているのです。
何とか10行に収まりました。

0.01ロット
最大ポジション1
年14,000円

これは10万円0.1ロットで実運用してみたいですねw