【FX完全自動売買シリーズ】MT4 EA無料ダウンロード&ロジック完全公開 ポンドドル5分足 121501_GBPUSD_M5_3MA_B



EA無料ダウンロード

永遠に放置できるわけではありません

裁量トレードほどには儲かりませんが、使い方によっては完全放置で利益が出ます

ですが、定期的なメンテナンス(パラメータ調整)はどうしても必要です。

「完全放置じゃないじゃん(゚Д゚)!」と言うツッコミありがとうございます。

【期間限定で完全放置】と言うことで勘弁してください。


投資は自己責任で

ご利用前に必ずご自身でデバッグ&バックテストしてください

公開しておいてなんですが、ロジックを参考にする程度に留めておくと幸せになれます。
免責や著作権について 免責:著作権は放棄していませんので商用利用不可。改造しての販売・再配布も不可。個人口座でのみ利用可。

また、ご利用されたことによるいかなる事態・結果についても責任は負いかねます。全て自己責任でお願いします。
ご注意:EAや自動売買に過度な期待をされている方、FXの世界に聖杯があると信じている方はこちらの記事も併せてご覧ください。

FXで完全機械化は可能か?

結論から言うと可能です。そんなことは20世紀からやっていることで、いまさら議論することでもないのですが・・・



期間限定のキャンペーンもやってます



コピペしてお持ち帰りください

※スパゲティなのは仕様です。ローカルにコピペでもしてご覧ください。

  • 環境認識
      レートがMAから乖離していないこと
  • トリガー
      3本のMAが全て上向きなった瞬間
  • 通貨ペア:ポンド/米ドル
  • 時間足:5分足
  • 売買方向:ロングのみ
//+------------------------------------------------------------------+
//|                                                 yama_Trail01.mq4 |
//|                      Copyright ゥ 2010, MetaQuotes Software Corp. |
//|                                        http://www.metaquotes.net |
//+------------------------------------------------------------------+
#define EA_MAGIC_NO		121501
#define D_NONE	0
#define D_BUY	1
#define D_SELL	2
#define D_OFF	0
#define D_ON	1
/*****************************************
 * グロバル変数
 *****************************************/
//extern int	EA_temp = 1;
extern double	EA_Lots=1;
int	EA_stop_min = 85;
int	EA_start_trail = 45;
int	EA_vola_cnt = 172;
double	EA_trail_rate = 0.62;
int	EA_ma_period_l = 1300;
int	EA_ma_period_m = 247;
int	EA_ma_period_s = 77;
double	EA_ma_kairi = 1.0;
int	EA_ma_kairi_rate = 13;

int g_TDM=0;
int temp=0;
double	g_stop_loss=0;
bool tradeFlg=D_OFF;
int	slippage=3;

double	G_Point=0;

int init()
{
	if(Point==0.00001) G_Point=10*Point;
	else
	if(Point==0.0001)  G_Point=1*Point;
	else return;

	slippage=slippage*G_Point;
}
//+------------------------------------------------------------------+
//| Check for open order conditions                                  |
//+------------------------------------------------------------------+
void CheckForOpen()
{
	int		ticket=0;
	double	ma_s_1=0,ma_m_1=0,ma_l_1=0,ma_s_2=0,ma_m_2=0,ma_l_2=0;

	if((Ask-Bid)>6*G_Point) return;

	ma_s_1=iMA(NULL,0,EA_ma_period_s,0,MODE_EMA,PRICE_TYPICAL,1);
	ma_m_1=iMA(NULL,0,EA_ma_period_m,0,MODE_EMA,PRICE_TYPICAL,1);
	ma_l_1=iMA(NULL,0,EA_ma_period_l,0,MODE_EMA,PRICE_TYPICAL,1);
	ma_s_2=iMA(NULL,0,EA_ma_period_s,0,MODE_EMA,PRICE_TYPICAL,2);
	ma_m_2=iMA(NULL,0,EA_ma_period_m,0,MODE_EMA,PRICE_TYPICAL,2);
	ma_l_2=iMA(NULL,0,EA_ma_period_l,0,MODE_EMA,PRICE_TYPICAL,2);

	if(((Bid-ma_l_1)/Bid)<EA_ma_kairi*0.01*EA_ma_kairi_rate*0.01 && ma_s_1>ma_s_2 && ma_m_1>ma_m_2 && ma_l_1>ma_l_2)
	{
		/****************
	 	* エントリー
	 	****************/	
		g_stop_loss=iLow(NULL,0,iLowest(NULL,0,MODE_LOW,288,0));
		if((Bid-g_stop_loss)<EA_stop_min*G_Point)
		{
			g_stop_loss=Bid-EA_stop_min*Bid*G_Point;
		}

		ticket=OrderSend(Symbol(),OP_BUY,
			EA_Lots,
			Ask,slippage,0,0,"121501",EA_MAGIC_NO,0,Blue);

		if(ticket<0)
		{
			g_stop_loss=0;
			Print("OrderSendError ",GetLastError());
		}
	}
}

void CheckForClose()
{
	int		ii=0,jj=0,total=0,order_flag=D_NONE,bar_count=0;
	double	volatility=0,stop_loss_new=0,ma_l_1=0;

	total=OrdersTotal();
	if(total<=0) return;

	for(ii=(total-1);ii>=0;ii--)
	{
		order_flag=D_NONE;

		if(OrderSelect(ii,SELECT_BY_POS,MODE_TRADES)!=TRUE)
		{
			Print("OrderSelect ERROR",GetLastError( ));
			return;
		}

		if(OrderSymbol()!=Symbol()) continue;
		if(OrderMagicNumber()!=EA_MAGIC_NO) continue;

		bar_count=iBarShift(NULL,0,OrderOpenTime(),false);

		if(OrderStopLoss()==0 && g_stop_loss!=0)
		{
			if(OrderModify(OrderTicket(),OrderOpenPrice(),g_stop_loss,0,0,White)!=TRUE)
			{
				Print("OrderModify ERROR stop ",GetLastError( ));
			}
		}

		if(!(bar_count>1)) continue;

		if(order_flag==D_NONE)
		{
			ma_l_1=iMA(NULL,0,EA_ma_period_l,0,MODE_EMA,PRICE_TYPICAL,1);

			if(OrderProfit()>0 && ((Bid-ma_l_1)/Bid)>EA_ma_kairi*0.01)
			{
				order_flag=D_BUY;
			}
		}

		if(order_flag==D_NONE)
		{
			volatility=High[iHighest(NULL,0,MODE_HIGH,EA_vola_cnt,1)]-Low[iLowest(NULL,0,MODE_LOW,EA_vola_cnt,1)];

			stop_loss_new=Bid-volatility*EA_trail_rate;

			if((Bid-OrderOpenPrice())>EA_start_trail*G_Point && OrderStopLoss()<(stop_loss_new-10*G_Point))
			{
				if(OrderModify(OrderTicket(),OrderOpenPrice(),stop_loss_new,0,0,White)!=TRUE)
				{
					Print("OrderModify ERROR trail ",GetLastError( ));
				}
			}
		}

		if(order_flag==D_BUY)
		{
			if(OrderClose(OrderTicket(),OrderLots(),Bid,10,Blue)!=TRUE)
			{
				Print("OrderClose ERROR",GetLastError( ));
			}
		}
		else continue;
	}
	return;
}

int start()
{
	int	handle=0,total=0,ii=0;
	bool posi_flag=D_OFF;

	if(Bars<EA_ma_period_l) return;

	total=OrdersTotal();
	for(ii=(total-1);ii>=0;ii--)
	{
		if(OrderSelect(ii,SELECT_BY_POS,MODE_TRADES)!=TRUE)
		{
			Print("OrderSelect ERROR A",GetLastError( ));
			return;
		}
		if(OrderSymbol()!=Symbol()) continue;
		if(OrderMagicNumber()!=EA_MAGIC_NO) continue;

		posi_flag=D_ON;
	}

	if(Minute()==0)
	{
		for(ii=0;ii<=Day();ii++)
		{
			if(TimeMonth(iTime(NULL,PERIOD_D1,ii))==Month())
			{
			}
			else
			{
				break;
			}
		}
		g_TDM = ii;
	}

	if(posi_flag==D_OFF)
	{
//		if(Month()==EA_temp)
		if(Month()!=8)
		{
//			if(g_TDM==EA_temp)
			if(g_TDM!=3 && g_TDM!=4 && g_TDM!=6 && g_TDM!=7 && g_TDM!=8)
			{
//				if(DayOfWeek()==EA_temp)
				if(DayOfWeek()!=1)
				{
					CheckForOpen();
				}
			}
		}
	}
	else
	{
		CheckForClose();
	}
//	if(temp<total) temp=total;
//	Print(temp);
}
//+------------------------------------------------------------------+