2016年10月27日木曜日

EA ESCALATOR BOY ソースあり

エスカレーターのマナーが変わってきています。
大阪では右側に立って左側を急ぐ人の為に開けます。
NY、ロンドン、パリ、香港など私の知っている大都市は右に立ちます。
しかし東京は左に立つようです。
京都は・・・前の人が立っている方向に並びます。
同じエスカレーターでも雰囲気で毎日変わります・・・

しかし、そごう横浜では二列に並んでくださいと係員がやっていました。
エレベーター前の混雑の原因は一列に立つことのようです。
そして、江の島以外のエスカレーターはほぼ無料です。
その無料のエスカレーターのメンテしてくださっている人の意見はなんと
「エスカレーターは歩かないでください!」でした。
危険という事と片方に並ぶと消耗品の片べりを起こすようです。

あなたはどちらでしょうか?
わたしは、二列派です!が、雰囲気によって片側によってしまいます。自分が無いですね

さて、スワップで利益を得たいとは、だれでも考えたことがあるのではないでしょうか。
AUDJPYを60円くらいで買っておけばよかったなと私もよく考えます。
※さてで始まる時は機嫌がいい時のようです。

三条京阪ブックオフ前のエスカレーターを見ていた時に思いついたのがこのEAです。
例えばAUDJPY、スワップはロングにつきます。

まず1本エントリーします。この時にはSL/TPは設定しません。
さらに0.1円下がったらもう一本発注します。この発注にもSL/TPは設定なしですが、この前の注文には発注価格+アルファでTPを付けます。

ポジションの運命は
①発注して決済されたもの⇒少し利益
②発注して未決済の物⇒スワップ獲得と損失
③一番最安値のポジション⇒スワップ獲得

バックテストではスワップは計算されませんが価格にある程度の幅がありますので長期ほったらかしには使えそうです。


 設定はこんな感じです。
MAGIC 1900 マジックナンバーです。世界最初のエレベーターは1900年にできたそうですので1900です。

SpreadLimit スプレッドの上限です13の場合1.3Pipsです。

Type Swapの方向です。AUDJPYのようにチャートが上昇してSWAPがもらえる時はSWAPUP、逆はSWAPDOWNにしてください。

LOTS ロットです。

TakeProfit 最初にエントリーしたTP/SLなしのポジションの利益確定です。
0の場合はTakeProfitはありません。例えば1円上がったらスワップより利益を取りたいという時には1000と入れて下さい。Point単位です。

Step こちらもPOINT単位です。100の場合初めに110円でエントリーした場合109.9円で追加オーダーと以前のロットのTP/SLをセットします。

そしてネーミングのエスカレーターボーイはエスカレーターが下がるようにポジションのオーダー価格が下がるというネーミングです。

使用できる金額と、耐えられる含み損を考えて設定をしてください。

バックテストはビジュアルモードがおすすめです。
月平均が上昇している時が最適です。



//+------------------------------------------------------------------+
//|                                                    ESCALATOR BOY |
//|                                      Copyright 2016, TACA        |
//|                                       http://taca.asia/          |
//+------------------------------------------------------------------+
enum LoS{SwapUp,SwapDown};
input int MAGIC=1900;
input int SpreadLimit=13;
input LoS Type=1;
input double Lots=0.01;
input int TakeProfit=0;
input int Step=100;
int d,i,Cnt;
double TP,Stp,PoO,OOP;
//Cnt:Count TP:TakeProfit Stp:Step PoO:Price on Order OOP:Order Open Price
int OnInit()
  {
   TP=TakeProfit*Point;
   Stp=Step*Point;
   return(0);
  }
//+------------------------------------------------------------------+
//|Ticker Boy                                                                  |
//+------------------------------------------------------------------+
void OnTick()
  {

   if(SprChk() && OrdTtl()==0){Entry();}
   if(Type && PoO+Stp<Close[0] && OrdTtl()!=0){Modify();Entry();}
   if(!Type && PoO-Stp>Close[0] && OrdTtl()!=0){Modify();Entry();}
  }
int SprChk(){return(MarketInfo(Symbol(),MODE_SPREAD)<=SpreadLimit);}
int OrdTtl(){Cnt=0;for(i=OrdersTotal()-1;i>=0;i--){d=OrderSelect(i,0);if(OrderMagicNumber()==MAGIC){Cnt++;}}return(Cnt);}
//+------------------------------------------------------------------+
//|Entry Boy                                                                  |
//+------------------------------------------------------------------+
void Entry()
  {
   if(TP==0)
     {
      if(Type)
        {PoO=Bid;d=OrderSend(Symbol(),OP_SELL,Lots,PoO,0,0,0,NULL,MAGIC);}
      else
        {PoO=Ask;d=OrderSend(Symbol(),OP_BUY,Lots,PoO,0,0,0,NULL,MAGIC);}
     }
   else
     {
      if(Type)
        {PoO=Bid;d=OrderSend(Symbol(),OP_SELL,Lots,PoO,0,0,PoO-TP,NULL,MAGIC);}
      else
        {PoO=Ask;d=OrderSend(Symbol(),OP_BUY,Lots,PoO,0,0,PoO+TP,NULL,MAGIC);}
     }
  }
//+------------------------------------------------------------------+
//|Modify Boy                                                                  |
//+------------------------------------------------------------------+
void Modify()
  {
   for(i=OrdersTotal()-1;i>=0;i--)
     {
      d=OrderSelect(i,0);
      if(OrderMagicNumber()==MAGIC)
        {
         OOP=OrderOpenPrice();
         if(Type)
         {d=OrderModify(OrderTicket(),OOP,0,OOP-Stp,0);}
         else
         {d=OrderModify(OrderTicket(),OOP,0,OOP+Stp,0);}
        }
     }
  }
//+------------------------------------------------------------------+

0 件のコメント:

コメントを投稿