(EAコード無料公開)ニャン吉Long・FX

ニャン吉Longは去年まで使っていたFXの取引手法をEA化したもので、単純にロングのエントリーと決済の指値を繰り返すだけのEAです。
今迄この取引手法での成績は勝率100%ではありますがこれは資金管理の成果であり、この取引手法を使えば自動的に勝率が100%になるという訳ではありません。
資金管理と取引手法については「FX勝率100%の方法」の記事で再度確認をお願いします
実際のEA稼働には以前紹介したニャン吉Repeatと同様に複数の指値で網を張る必要があるので、そちらについてはニャン吉Repeatの使い方も参考にしてみてください。

実は昨日の記事にあるニャン吉CFD-SMAを使わない場合にはこちらのニャン吉LongをFXEAで稼働させるつもりでいました。
今はバイデン政権下での値動きを見る限り従来のFX手法で運用する気が起きません。
資金管理を守っている限り勝率の点では問題なくても収益率の点で不安があるからです。
また、このEAもあくまでニャン吉が自分用として使う前提で制作しています。
ご利用は自己責任のうえLive口座での本稼働は避けるようにお願いします

ニャン吉Longは本当にシンプルな作りである為、ニャン吉Repeatとは異なり補助EAと組み合わせる必要がないのがメリットです。
但し網を張る場合には決済価格を少しずつずらしておかないと、MT4の同時処理でラグが起こる事は変わらないのでその点だけは注意が必要です。

//+------------------------------------------------------------------+
//|                                                ニャン吉Long.mq4 |
//|           商用利用及び再配布を禁じます 2021.8 ニャン吉ちゃんねる |
//|                                     https://ニャン吉ちゃんねる.com |
//+------------------------------------------------------------------+
#property copyright   "商用利用及び再配布を禁じます 2021.8 ニャン吉ちゃんねる"
#property link        "https://ニャン吉ちゃんねる.com"

input int Magic =11;
input double Lots =0.1;
input double Entry =102;
input double Kessai =110;

   //エントリーカウント
   int CurrentOrder()
    {
   int cnt=0; 
   for(int i=0;i<OrdersTotal();i++) {   
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
      if(OrderSymbol()!=Symbol() || OrderMagicNumber()!=Magic) continue;     
      if(OrderType()==OP_BUY) {
         cnt++;
      }
      if(OrderType()==OP_SELL){
         cnt++;
      }   
    }
    return(cnt);
    }   
    
void OnTick(void)
  {
   int    ticket;

   if(Bars<100)
     {
      Print("bars less than 100");
      return;
     }
   
   if(CurrentOrder()<1)
     {
      
      if(AccountFreeMargin()<(1000*Lots))
        {
         Print("We have no money. Free Margin = ",AccountFreeMargin());
         return;
        }
        
      //--- check for long position (BUY) possibility
      if(Ask<Entry)
        {
         ticket=OrderSend(Symbol(),OP_BUY,Lots,Ask,10,0,Kessai,NULL,Magic,0,Green);
         if(ticket>0)
           {
            if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES))
               Print("BUY order opened : ",OrderOpenPrice());
           }
         else
            Print("Error opening BUY order : ",GetLastError());
         return;
        }
      return;
     }
    }

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です