本EAは「誰にでも、簡単に」をコンセプトとし、ChatGPTという言語モデルを活用して作成しています。「こんなに簡単にEAを作れるんだ!」というように、自然言語をもとにEAを作るプロセスの参考にして頂ければ幸いです。
また、簡単操作で自動売買を運用できるツールもこちらの記事で紹介しています。ぜひご覧ください!
FX初心者必見!トライオートで簡単に自動売買を始めよう!驚くべき成果を実現する方法
FX初心者に最適な自動売買ツール「トライオート」の活用方法を解説。豊富なEAラインナップ、シンプルな操作性、バックテスト機能などを駆使し、為替取引に挑戦。成功事例や…
目次
本プログラムの概要
- 短期の移動平均線(FastMA)と長期の移動平均線(SlowMA)を使用
- FastMAがSlowMAを上抜けした場合に買いシグナル
- FastMAがSlowMAを下抜けした場合に売りシグナル
- ストップロスとテイクプロフィットを設定
入力パラメータ
FastMA_Period
(短期移動平均線の期間)SlowMA_Period
(長期移動平均線の期間)StopLoss_Pips
(ストップロスの幅(ピップス))TakeProfit_Pips
(テイクプロフィットの幅(ピップス))
プログラムの流れ
- 短期と長期の移動平均線を計算します。
- 移動平均線がクロスしたかどうかを判断し、売買シグナルを生成します。
- シグナルに従って、注文を発行します。
FX初心者必見!移動平均線とは?効果的な活用法でトレードスキルアップ
FXトレーディングに欠かせない移動平均線の活用法やメリット・デメリットを解説。トレンド方向性の把握やトレンドフォロー型トレーダーへの適用性を紹介。横ばい相場での活…
プログラムソースコード
// SimpleMovingAverageCrossEA.mq4
#property strict
// Input Parameters
input int FastMA_Period = 5; // Fast Moving Average Period
input int SlowMA_Period = 10; // Slow Moving Average Period
input int StopLoss_Pips = 50; // Stop Loss in Pips
input int TakeProfit_Pips = 100; // Take Profit in Pips
int OnInit() {
return(INIT_SUCCEEDED);
}
void OnTick() {
double FastMA_Current = iMA(NULL, 0, FastMA_Period, 0, MODE_SMA, PRICE_CLOSE, 0);
double FastMA_Previous = iMA(NULL, 0, FastMA_Period, 0, MODE_SMA, PRICE_CLOSE, 1);
double SlowMA_Current = iMA(NULL, 0, SlowMA_Period, 0, MODE_SMA, PRICE_CLOSE, 0);
double SlowMA_Previous = iMA(NULL, 0, SlowMA_Period, 0, MODE_SMA, PRICE_CLOSE, 1);
bool isBuySignal = FastMA_Current > SlowMA_Current && FastMA_Previous < SlowMA_Previous;
bool isSellSignal = FastMA_Current < SlowMA_Current && FastMA_Previous > SlowMA_Previous;
double StopLoss = StopLoss_Pips * _Point;
double TakeProfit = TakeProfit_Pips * _Point;
if (isBuySignal) {
int ticket = OrderSend(Symbol(), OP_BUY, 0.01, Ask, 3, Bid - StopLoss, Bid + TakeProfit, "Buy Order");
} else if (isSellSignal) {
int ticket = OrderSend(Symbol(), OP_SELL, 0.01, Bid, 3, Ask + StopLoss, Ask - TakeProfit, "Sell Order");
}
}
void OnDeinit(const int reason) {
}
プログラムの詳細解説
移動平均線の計算
短期と長期の移動平均線を計算するには、iMA()
関数を使用します。この関数は、指定された期間の移動平均を計算して返します。
double FastMA_Current = iMA(NULL, 0, FastMA_Period, 0, MODE_SMA, PRICE_CLOSE, 0);
double FastMA_Previous = iMA(NULL, 0, FastMA_Period, 0, MODE_SMA, PRICE_CLOSE, 1);
double SlowMA_Current = iMA(NULL, 0, SlowMA_Period, 0, MODE_SMA, PRICE_CLOSE, 0);
double SlowMA_Previous = iMA(NULL, 0, SlowMA_Period, 0, MODE_SMA, PRICE_CLOSE, 1);
売買シグナルの判断
移動平均線がクロスしたかどうかを判断し、売買シグナルを生成します。
bool isBuySignal = FastMA_Current > SlowMA_Current && FastMA_Previous < SlowMA_Previous;
bool isSellSignal = FastMA_Current < SlowMA_Current && FastMA_Previous > SlowMA_Previous;
注文の発行
売買シグナルに従って、注文を発行します。OrderSend()
関数を使用して、指定された条件で注文を発行します。
if (isBuySignal) {
int ticket = OrderSend(Symbol(), OP_BUY, 0.01, Ask, 3, Bid - StopLoss, Bid + TakeProfit, "Buy Order");
} else if (isSellSignal) {
int ticket = OrderSend(Symbol(), OP_SELL, 0.01, Bid, 3, Ask + StopLoss, Ask - TakeProfit, "Sell Order");
}
``
このプログラムを実行することで、移動平均線がクロスした際に自動的に売買を行うシンプルなEAが完成しました。次のステップとして、このEAをMetaTrader 4にインポートして、デモ口座でのバックテストやフォワードテストを行ってみましょう。その際、パラメータの最適化や、他の通貨ペアや時間足でのテストも試してみてください。
まとめ
今回はシンプルな移動平均線クロスEAをMQL4で作成する方法を紹介しました。このEAは初心者の方でも理解しやすく、カスタマイズも容易なので、ぜひお試しください。また、他のプログラムや戦略を組み合わせることで、さらに効果的なトレーディングシステムを構築することも可能です。今後も、さまざまな取引戦略やプログラムについて紹介していきますので、お楽しみに!
コメント