<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>FX アーカイブ - 自動売買を作ろう！</title>
	<atom:link href="https://mql-programing.com/archives/tag/fx/feed/" rel="self" type="application/rss+xml" />
	<link>https://mql-programing.com/archives/tag/fx/</link>
	<description>MQLプログラミング学習サイト</description>
	<lastBuildDate>Sun, 15 May 2022 08:08:06 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://mql-programing.com/main29/wp-content/uploads/2021/02/cropped-ブログアイコン-32x32.jpg</url>
	<title>FX アーカイブ - 自動売買を作ろう！</title>
	<link>https://mql-programing.com/archives/tag/fx/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>【MQL4プログラミング】自動売買の作り方！FXで使えるテンプレートあり</title>
		<link>https://mql-programing.com/archives/1605/make_autotrade_by_myself/</link>
		
		<dc:creator><![CDATA[朝日奈りさ]]></dc:creator>
		<pubDate>Tue, 28 Sep 2021 07:09:16 +0000</pubDate>
				<category><![CDATA[【上級編】自動売買の作り方]]></category>
		<category><![CDATA[MQL]]></category>
		<category><![CDATA[自動売買]]></category>
		<category><![CDATA[FX]]></category>
		<category><![CDATA[プログラムテンプレート]]></category>
		<guid isPermaLink="false">https://mql-programing.com/?p=1605</guid>

					<description><![CDATA[<p>はじめに この記事は、MQLプログラミング基礎を理解している方向けに作成しております。 もしMQLプログラミングがわからないという方は、先に以下の記事を読んでおくことをオススメします。 カテゴリー：MQLプログラミング基 [&#8230;]</p>
<p>投稿 <a href="https://mql-programing.com/archives/1605/make_autotrade_by_myself/">【MQL4プログラミング】自動売買の作り方！FXで使えるテンプレートあり</a> は <a href="https://mql-programing.com">自動売買を作ろう！</a> に最初に表示されました。</p>
]]></description>
										<content:encoded><![CDATA[
<div class="wp-block-cocoon-blocks-balloon-ex-box-1 speech-wrap sb-id-11 sbs-stn sbp-l sbis-cb cf block-box"><div class="speech-person"><figure class="speech-icon"><img decoding="async" src="https://mql-programing.com/main29/wp-content/uploads/2021/10/アイコン.png" alt="朝日奈りさ" class="speech-icon-image"/></figure><div class="speech-name">朝日奈りさ</div></div><div class="speech-balloon">
<p>FXで自動売買を使いたい。でも売っているものは怪しい。という方に<strong>自動売買の作り方</strong>を解説します！<br>さらに、FXで使えるテンプレートを無料配布します！</p>
</div></div>



<h2 class="wp-block-heading"><span id="toc1">はじめに</span></h2>



<p>この記事は、<strong><span class="marker-under-red">MQLプログラミング基礎を理解している方向けに作成</span></strong>しております。</p>



<p>もしMQLプログラミングがわからないという方は、先に以下の記事を読んでおくことをオススメします。</p>



<p><a href="https://mql-programing.com/category/mql-programing-basic/">カテゴリー：MQLプログラミング基礎</a></p>



<p>　</p>



<p><strong>また、FX自動売買を作成している過程で、エントリー・決済してしまう可能性がございます。</strong></p>



<p>作成する際には、十分に注意しながらプログラミングしてください。</p>



<p>　</p>



<h2 class="wp-block-heading"><span id="toc2">FX自動売買とは</span></h2>



<p>FX（Forex eXchange）は、自動売買を使うことができます。</p>



<p>自動売買とは、エントリー・決済のタイミングを自動で判断してくれるものです。</p>



<p><strong><span class="marker-under-red">実際にエントリー・決済を実行しますので、何もしなくてもトレードを行ってくれます。</span></strong></p>



<p>そのため自動売買は、忙しい方やチャートを見れない方に最適な方法です。</p>



<p>　</p>



<p>今回は、<strong>FXで使える自動売買を自作する方法</strong>について解説していきます。</p>



<p>リアル口座で使えるテンプレートもありますので、ぜひ内容を理解して、使いこなせるようにがんばりましょう！</p>



<p>　</p>



<p>もしこちらの記事を読んでいない方は、先にFX自動売買の危険性について理解すると良いでしょう。</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-自動売買を作ろう！ wp-block-embed-自動売買を作ろう！"><div class="wp-block-embed__wrapper">

<a href="https://mql-programing.com/danger-of-automatic-trading/" title="【MQLプログラミング】自動売買は安全？ システムに潜む危険性とは" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img decoding="async" src="https://i0.wp.com/mql-programing.com/main29/wp-content/uploads/2021/04/danger-of-automatic-trading.jpg?fit=1200%2C675&#038;ssl=1" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">【MQLプログラミング】自動売買は安全？ システムに潜む危険性とは</div><div class="blogcard-snippet external-blogcard-snippet">目次 自動売買システムを使う方法FX会社独自の自動売買を使うMT4の自動売買（EA）を使う自動売買のメリット・デメリット自動売買のメリット24時間トレードができる感情の影響を受けない最低限の相場分析でOK自動売買のデメリ</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img decoding="async" src="https://www.google.com/s2/favicons?domain=https://mql-programing.com/archives/553/danger-of-automatic-trading/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">mql-programing.com</div></div></div></div></a>
</div></figure>



<p>　</p>



<h2 class="wp-block-heading"><span id="toc3">FX自動売買を作るための準備</span></h2>



<p>MT4またはMT5をインストールしましょう。</p>



<p>MT4/MT5は、FXトレードができるソフトです。</p>



<p>ここでは<strong>MT4</strong>を使っていきます。</p>



<p>　</p>



<p>MT4はFXトレードができるだけでなく、自動売買の実行・作成・テストをすることができます。</p>



<p><strong><span class="marker-under-red">そのため、FX自動売買を作ったり、動かしたりする場合は、MT4がなければなりません。</span></strong></p>



<p>もしMT4をインストールしていない方は、この機会にインストールしてしまいましょう。</p>



<p>　</p>



<p>FX会社によっては、MT4を提供していない場合がありますので、その場合はMT4を提供しているFX会社に乗り換えましょう。</p>



<p>当サイトは <a href="https://mql-programing.com/product/is6fx/">IS6FX</a>の口座で動作確認をしておりますので、もしMT4口座を持っていない場合は、こちらが良いでしょう。</p>



<p>　</p>



<h2 class="wp-block-heading"><span id="toc4">FX自動売買の作り方</span></h2>



<p>それでは、FX自動売買の具体的な作り方を見ていきましょう。</p>



<p>作る順番としては以下の通りです。</p>



<p><strong><span class="marker-under-red">注意して欲しいのは、OrderSend関数などの注文を出す関数は、一番最後にプログラミングしましょう。</span></strong></p>



<p>テスト中にエントリーされたら困るからですね。</p>



<ol class="wp-block-list"><li><strong>口座凍結の対策する</strong></li><li><strong>決済ロジックをプログラムする</strong></li><li><strong>エントリーロジックをプログラムする</strong></li><li><strong>注文関数（<a href="https://mql-programing.com/ordersend/" title="【MQL4関数】エントリー注文の出し方とサンプルプログラム（OrderSend関数）">OrderSend関数</a>など）をプログラムする</strong></li></ol>



<p>　</p>



<p>上から順番にプログラミングすることで、スムーズに自動売買を作れると思います。</p>



<p>　</p>



<h3 class="wp-block-heading"><span id="toc5">口座凍結の対策をする</span></h3>



<p>FX自動売買で重要なのは、しっかりとしたロジックを考えることです。</p>



<p>しかし、<strong><span class="marker-under-red">ロジックを考えることより重要なのが、口座凍結にならないようにプログラミングすることです。</span></strong></p>



<p>口座凍結になったら元も子もありません。</p>



<p>そのため、一番初めに口座凍結にならないためのプログラミングをしていきましょう。</p>



<p>　</p>



<p>まずは口座凍結になる原因について確認します。</p>



<p>FX会社によって異なりますが、大抵は以下のことに気をつけると良いでしょう。</p>



<ul class="wp-block-list"><li><strong>超スキャルピングトレードにならないこと</strong></li><li><strong>注文が失敗したときに、連続で注文しないこと</strong></li><li><strong>ロット数を設定できること</strong></li><li><strong>最大ロット数を超えないこと</strong></li><li><strong>最大ポジション数を超えないこと</strong></li><li><strong>損切りと利確を入れられること</strong></li></ul>



<p>　</p>



<p>なぜダメなのかは、<a href="https://mql-programing.com/danger-of-automatic-trading/">自動売買の危険性</a>について理解を深めましょう。</p>



<p>　</p>



<h4 class="wp-block-heading"><span id="toc6">プログラムテンプレートを作る</span></h4>



<p>それでは、口座凍結の原因を対策したプログラムテンプレートを作成します。</p>



<p>一つずつ見ていきます。</p>



<p>　</p>



<p>　</p>



<p><strong>「超スキャルピングトレードにならないこと<br>　注文が失敗したときに、連続で注文しないこと」</strong></p>



<p>まずはこちらの２項目の対策をしていきます。</p>



<p>対策の考え方ですが、<strong><span class="marker-under-red">「エントリーした後、一定時間エントリーしない」</span></strong>という考え方で対策します。</p>



<p>いろいろやり方はあるのですが、ここでは時間足に注目します。</p>



<p>「一定時間」を「次のティックが出るまで」に置き換えてみましょう。</p>



<p>すると<strong>「エントリーした後、次のティックが出るまでエントリーしない」</strong>という考え方が出来上がるので、これでプログラムを作っていきましょう。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>//連続でエントリーしないためのフラグ（大域変数）
datetime time = Time[0];

//初期関数(価格が動くごとに実行)
void OnTick()
  {
  //---

  //連続でエントリーしないようにする
  //time変数が、現在の時間ではない場合に実行する
     if(time != Time[0])
       {
     
        //time変数に、現在の時間を代入
        time = Time[0];

        //ここにエントリー注文などのプログラムを書く

       }
  }</code></pre></div>



<p>　</p>



<p>大域変数（グローバル変数）として、datetime型のtimeという変数を作ります。</p>



<p>そして「time変数が、現在の時間ではない場合」というif文を追加し、そのif文の中で、time変数に現在の時間を代入します。</p>



<p>　</p>



<p><strong><span class="marker-under-red">このように書くことで、超スキャルピングトレードを防ぐことができます。</span></strong></p>



<p>実行させたときの動きを追ってみると、以下のようになります。</p>



<p>新しいティックが出ると、順番が増えるというイメージで見てください。</p>



<figure class="wp-block-table alignfull"><table><tbody><tr><td><strong>順番</strong></td><td><strong>time変数の中身</strong></td><td><strong>time != Time[0]</strong></td><td><strong>実行可否</strong></td></tr><tr><td>1</td><td>Time[0]</td><td>false</td><td>否</td></tr><tr><td>2</td><td>Time[1]</td><td>true</td><td>可</td></tr><tr><td>2.1</td><td>Time[0]</td><td>false</td><td>否</td></tr><tr><td>3</td><td>Time[1]</td><td>true</td><td>可</td></tr><tr><td>3.1</td><td>Time[0]</td><td>false</td><td>否</td></tr></tbody></table></figure>



<p>　</p>



<p><strong>このように、新しいティックが出たときに、1回だけ実行されます。</strong></p>



<p>次に実行されるのは、また新しいティックが出たときです。</p>



<p>　</p>



<p>　</p>



<h5 class="wp-block-heading"><span id="toc7">「ロット数を設定できること　最大ロット数を超えないこと　最大ポジション数を超えないこと」</span></h5>



<p>次はこの３項目をプログラムしていきます。</p>



<p>これらの設定は外部入力ができると便利なので、以下のようにプログラミングします。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>//外部入力(大域変数)
input double LOT = 0.01; //ロット数の設定
input double MAXLOT = 1; //最大ロット数の設定
input double MAXPOSITION = 200; //最大ポジション数

//初期関数(価格が動くごとに実行)
void OnTick()
  {
//---

//現在のポジション数を代入する変数
   int positionNum = 0;

//ここに現在のポジション数を更新するプログラムを書く

//最大ロット数のチェック
   if(LOT &gt; MAXLOT)
      return;

//最大ポジション数のチェック
   if(positionNum &gt; MAXPOSITION)
      return;

//ここにLOTを考慮した、エントリーのプログラムを書く

  }</code></pre></div>



<p>　</p>



<p><strong><span class="marker-under-red">それぞれの項目をチェックして、異常があれば何もしないというプログラムです。</span></strong></p>



<p>あとはLOTを考慮したエントリープログラムを書いたらOKです。</p>



<p>　</p>



<p>　</p>



<h5 class="wp-block-heading"><span id="toc8">「損切りと利確を入れられること」</span></h5>



<p>損切りと利確も、外部から入力できるようにしてしまいましょう。</p>



<p>以下のように書きます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>//外部入力(大域変数)
input double TAKEPROFIT_WIDTH = 100; //利確幅（単位point）
input double STOPLOSS_WIDTH = 100; //損切り幅（単位point）</code></pre></div>



<p>　</p>



<p>これらの項目も、エントリーするタイミングで使うようにプログラムしましょう。</p>



<p>　</p>



<p>　</p>



<h5 class="wp-block-heading"><span id="toc9">口座凍結対策をしたプログラムの全体像</span></h5>



<p>以下のプログラムは、口座凍結対策をしたプログラムのまとめです。</p>



<p>このプログラムに、ロジックやエントリー注文のプログラムを追加することで、<strong><span class="marker-under-red">比較的安全な自動売買を作ることができます。</span></strong></p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>//+------------------------------------------------------------------+
//|                                   SampleMQL_Program_Template.mq4 |
//|                                   Copyright 2021, Risa FX Vtuber |
//|                                      https://mql-programing.com/ |
//+------------------------------------------------------------------+
#property copyright &quot;Copyright 2021, Risa FX Vtuber&quot;
#property link      &quot;https://mql-programing.com/&quot;
#property version   &quot;1.00&quot;
#property description &quot;ダウンロードありがとうございます！&quot;
#property description &quot;RisaFXチャンネルです＾＾&quot;
#property description &quot;投資は自己責任です。余剰資金で行うようにしましょう。&quot;

#property strict

//連続でエントリーしないためのフラグ
datetime time = Time[0];

//外部入力
input double LOT = 0.01; //ロット数の設定
input double MAXLOT = 1; //最大ロット数の設定
input double MAXPOSITION = 200; //最大ポジション数
input double TAKEPROFIT_WIDTH = 100; //利確幅（単位point）
input double STOPLOSS_WIDTH = 100; //損切り幅（単位point）

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---

//現在のポジション数を代入する変数
   int positionNum = 0;

//ここに現在のポジション数を更新するプログラムを書く

//最大ロット数のチェック
   if(LOT &gt; MAXLOT)
      return;

//最大ポジション数のチェック
   if(positionNum &gt; MAXPOSITION)
      return;

//連続でエントリーしないようにする
//time変数が、現在の時間ではない場合に実行する
   if(time != Time[0])
     {

      //time変数に、現在の時間を代入
      time = Time[0];

      //ここにロジックやエントリー注文を書く
      //エントリーサンプル（実行しないでください！！）
      //int buy = OrderSend(Symbol(), OP_BUY, LOT, Ask, 30, Ask-STOPLOSS_WIDTH, Ask+TAKEPROFIT_WIDTH, &quot;自動売買を作ろう！&quot;, 9999, clrNONE);
     }
  }
//+------------------------------------------------------------------+
</code></pre></div>



<p>　</p>



<div class="wp-block-cocoon-blocks-button-1 button-block"><a href="https://mql-programing.com/download/1630/" class="btn btn-l btn-circle" target="_self">ここまでのサンプルプログラムはこちら</a></div>



<p>　</p>



<p>　</p>



<h3 class="wp-block-heading"><span id="toc10">決済ロジックをプログラミングする</span></h3>



<p>口座凍結の対策はできましたので、次は決済のロジックをプログラミングしていきます。</p>



<p>決済のやり方ですが、以下の順番で実行させます。</p>



<ol class="wp-block-list"><li><strong>ポジションを選択</strong></li><li><strong>決済のロジックに当てはまっているか判定</strong></li><li><strong>実際に決済</strong></li></ol>



<p>　</p>



<p>上記の流れをプログラムします。</p>



<p>　</p>



<h4 class="wp-block-heading"><span id="toc11">プログラムテンプレートを作る</span></h4>



<p>一つずつ見ていくと、まとまらないので、一気に見ていきます。</p>



<p>以下のように書くと良いでしょう。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>void OnTick()
  {
//---

//現在のポジション数を代入する変数
   int positionNum = 0;

//ポジションチェック
   for(int i = 0; i &lt; OrdersTotal(); i++)
     {
      //ポジションを選択
      if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
        {
         //ポジションの通貨ペアとEAの通貨ペアが一致しているか
         if(OrderSymbol() == Symbol())
           {
            //マジックナンバーが一致しているか
            if(OrderMagicNumber() == MAGICNUMBER)
              {
               //買いポジションの場合
               if(OrderType() == OP_BUY)
                 {
                  positionNum++;
                  //ここに決済ロジックを書く（if文）
                  //bool close = OrderClose(OrderTicket(), OrderLots(), OrderOpenPrice(), SLIPPAGE);
                 }
               //売りポジションの場合
               if(OrderType() == OP_SELL)
                 {
                  positionNum++;
                  //ここに決済ロジックを書く（if文）
                  //bool close = OrderClose(OrderTicket(), OrderLots(), OrderOpenPrice(), SLIPPAGE);
                 }
              }
           }
        }
     }
  }</code></pre></div>



<p>　</p>



<p>このように書くことで、ポジションを選択、決済ロジック、実際に決済するところまで書きました。</p>



<p><a href="https://mql-programing.com/orderclose/" title="【MQL4関数】決済注文の出し方（OrderClose関数）とサンプルプログラム">OrderClose関数</a>以外にも、いろいろな関数を使っています。</p>



<p>便利な関数なので、この機会に全て覚えてしまいましょう。</p>


<ul>
<li>
<div id="wordpress"><a href="https://mql-programing.com/orderstotal/" title="【MQL4関数】保有ポジション数の取得（OrdersTotal関数）の使い方" onclick="Wordpress();">OrdersTotal関数</a></div>
</li>
<li>
<div id="wordpress"><a href="https://mql-programing.com/orderselect/" title="【MQL4関数】保有ポジションの選択（OrderSelect関数）のやり方" onclick="Wordpress();">OrderSelect関数</a></div>
</li>
<li>
<div id="wordpress"><a href="https://mql-programing.com/ordersymbol/" title="【MQL4関数】正しい通貨ペアのポジションを決済する方法（OrderSymbol関数）" onclick="Wordpress();">OrderSymbol関数</a></div>
</li>
<li>
<div id="wordpress"><a href="https://mql-programing.com/ordermagicnumber/" title="【MQL4関数】マジックナンバーとは？ポジション管理のやり方（OrderMagicNumber関数）" onclick="Wordpress();">OrderMagicNumber関数</a></div>
</li>
<li>
<div id="wordpress"><a href="https://mql-programing.com/ordertype/" title="【MQL4関数】OrderType関数の使い方！ポジションの種類を取得して、買いと売りを判別しよう" onclick="Wordpress();">OrderType関数</a></div>
</li>
<li>
<div id="wordpress"><a href="https://mql-programing.com/orderticket/" title="【MQL4関数】チケット番号の取得方法（OrderTicket関数）" onclick="Wordpress();">OrderTicket関数</a></div>
</li>
<li>
<div id="wordpress"><a href="https://mql-programing.com/orderlots/" title="【MQL4関数】ポジションのロット数の取得方法（OrderLots関数）" onclick="Wordpress();">OrderLots関数</a></div>
</li>
<li>
<div id="wordpress"><a href="https://mql-programing.com/orderopenprice/" title="【MQL4関数】エントリーした価格の取得方法（OrderOpenPrice関数）" onclick="Wordpress();">OrderOpenPrice関数</a></div>
</li>
</ul>


<p>　</p>



<div class="wp-block-cocoon-blocks-button-1 button-block"><a href="https://mql-programing.com/product/file_orderclose/" class="btn btn-l btn-circle" target="_self">この部分のプログラムテンプレートはこちら</a></div>



<p>　</p>



<h3 class="wp-block-heading"><span id="toc12">エントリーロジックをプログラミングする</span></h3>



<p>エントリーロジックは、自由に作成してください。</p>



<p>移動平均線を使うロジックなら<a href="https://mql-programing.com/ima-method/" title="【MQL4関数】移動平均線（iMA関数）の使い方とサンプルプログラム">iMA関数</a>、RSIを使うロジックならiRSI関数と言ったように、便利な関数が用意されていますので、利用すると良いでしょう。</p>



<p>ここでは、具体的にプログラミングはしません。</p>



<p>MQLプログラミングでは、エントリーロジックを考えるところが一番楽しいところなので、楽しみながら作成してください！</p>



<p>　</p>



<p>【追記】iMA関数を利用したゴールデンクロス・デッドクロスのサンプルプログラムを作成しておりますので、書き方はこちらを参考にしてください。</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-自動売買を作ろう！ wp-block-embed-自動売買を作ろう！"><div class="wp-block-embed__wrapper">

<a href="https://mql-programing.com/ima-method/" title="【MQL4関数】iMA関数（移動平均線）の使い方とサンプルプログラム" class="blogcard-wrap external-blogcard-wrap a-wrap cf" target="_blank"><div class="blogcard external-blogcard eb-left cf"><div class="blogcard-label external-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail external-blogcard-thumbnail"><img decoding="async" src="https://i0.wp.com/mql-programing.com/main29/wp-content/uploads/2021/04/SampleMQL_iMA.jpg?fit=1200%2C675&#038;ssl=1" alt="" class="blogcard-thumb-image external-blogcard-thumb-image" width="160" height="90" /></figure><div class="blogcard-content external-blogcard-content"><div class="blogcard-title external-blogcard-title">【MQL4関数】iMA関数（移動平均線）の使い方とサンプルプログラム</div><div class="blogcard-snippet external-blogcard-snippet">目次 iMA関数とは？iMA関数の書き方基本的な書き方iMA関数の返り値（戻り値）iMA関数の引数①symbol　（通貨ペアを設定）②timeframe　（時間足を設定）③ma_period　（計算期間を設定）④ma_s</div></div><div class="blogcard-footer external-blogcard-footer cf"><div class="blogcard-site external-blogcard-site"><div class="blogcard-favicon external-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://mql-programing.com/archives/437/ima-method/" alt="" class="blogcard-favicon-image external-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain external-blogcard-domain">mql-programing.com</div></div></div></div></a>
</div></figure>



<p>　</p>



<h3 class="wp-block-heading"><span id="toc13">実際に注文を出す関数をプログラミングする</span></h3>



<p>それでは実際に注文を出してみましょう。</p>



<p>注文はOrder○○○関数を使います。</p>



<p>主に使うのは、<a href="https://mql-programing.com/ordersend/" title="【MQL4関数】エントリー注文の出し方とサンプルプログラム（OrderSend関数）">OrderSend関数</a>と <a href="https://mql-programing.com/orderclose/" title="【MQL4関数】決済注文の出し方（OrderClose関数）とサンプルプログラム">OrderClose関数</a>です。</p>



<p>これらの注文関数は、実際にエントリーをしてしまうので、取り扱いには十分注意しましょう。</p>



<p>　</p>



<p>それでは先程のプログラムに追記してみましょう。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>//+------------------------------------------------------------------+
//|                                   SampleMQL_Program_Template.mq4 |
//|                                   Copyright 2021, Risa FX Vtuber |
//|                                      https://mql-programing.com/ |
//+------------------------------------------------------------------+
#property copyright &quot;Copyright 2021, Risa FX Vtuber&quot;
#property link      &quot;https://mql-programing.com/&quot;
#property version   &quot;1.00&quot;
#property description &quot;ダウンロードありがとうございます！&quot;
#property description &quot;RisaFXチャンネルです＾＾&quot;
#property description &quot;投資は自己責任です。余剰資金で行うようにしましょう。&quot;

#property strict

//連続でエントリーしないためのフラグ
datetime time = Time[0];

//外部入力
input double LOT = 0.01; //ロット数の設定
input double MAXLOT = 1; //最大ロット数の設定
input double MAXPOSITION = 200; //最大ポジション数
input double TAKEPROFIT_WIDTH = 100; //利確幅（単位point）
input double STOPLOSS_WIDTH = 100; //損切り幅（単位point）

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---

//現在のポジション数を代入する変数
   int positionNum = 0;

//ポジションチェック
   for(int i = 0; i &lt; OrdersTotal(); i++)
     {
      //ポジションを選択
      if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
        {
         //ポジションの通貨ペアとEAの通貨ペアが一致しているか
         if(OrderSymbol() == Symbol())
           {
            //マジックナンバーが一致しているか
            if(OrderMagicNumber() == 9999)
              {
               //買いポジションの場合
               if(OrderType() == OP_BUY)
                 {
                  positionNum++;
                  //ここに決済ロジックを書く（if文）
                  //bool close = OrderClose(OrderTicket(), OrderLots(), OrderOpenPrice(), SLIPPAGE);
                 }
               //売りポジションの場合
               if(OrderType() == OP_SELL)
                 {
                  positionNum++;
                  //ここに決済ロジックを書く（if文）
                  //bool close = OrderClose(OrderTicket(), OrderLots(), OrderOpenPrice(), SLIPPAGE);
                 }
              }
           }
        }
     }

//最大ロット数のチェック
   if(LOT &gt; MAXLOT)
      return;

//最大ポジション数のチェック
   if(positionNum &gt; MAXPOSITION)
      return;

//連続でエントリーしないようにする
//time変数が、現在の時間ではない場合に実行する
   if(time != Time[0])
     {

      //time変数に、現在の時間を代入
      time = Time[0];

      //ここにロジックやエントリー注文を書く
      //エントリーサンプル（実行しないでください！！）
      //int buy = OrderSend(Symbol(), OP_BUY, LOT, Ask, 30, Ask-STOPLOSS_WIDTH, Ask+TAKEPROFIT_WIDTH, &quot;自動売買を作ろう！&quot;, 9999, clrNONE);
     }
  }
//+------------------------------------------------------------------+
</code></pre></div>



<p>　</p>



<p>非常に長いですが、こちらが<strong><span class="marker-under-red">プログラムテンプレートの完成版</span></strong>になります。</p>



<p>ロジックの部分は作っておりませんので、考えてみてください。</p>



<p>逆にいえば、ロジックの部分さえ作れれば、自動売買を作ることができますので、頑張ってみてください！</p>



<p>　</p>



<div class="wp-block-cocoon-blocks-button-1 button-block"><a href="https://mql-programing.com/download/1644/" class="btn btn-l btn-circle has-background has-black-background-color" target="_self">プログラムテンプレートの完成版はこちら</a></div>



<p>　</p>



<h3 class="wp-block-heading"><span id="toc14">【補足】コンパイル</span></h3>



<p>プログラミング用語で、コンパイルという言葉があります。</p>



<p><strong>これはプログラムを変換し、パソコンが実行できるようにする処理のことです。</strong></p>



<p>そのため、プログラムを書いた後は、必ずコンパイルをしてください。</p>



<p>プログラムを書いただけでは、実行できませんのでご注意ください。</p>



<p>MT4の標準機能として、コンパイルも搭載されているので、ワンクリックで終わります。</p>



<p>　</p>



<h3 class="wp-block-heading"><span id="toc15">FX自動売買の作り方のまとめ</span></h3>



<p>ここまで、FX自動売買を作成するために、プログラムのテンプレートを解説しました。</p>



<p><strong>口座凍結対策からエントリー注文を出すところまで、サンプルプログラムを用意しましたので、ダウンロードして使っていただけると嬉しいです。</strong></p>



<p>あとは、ロジックを追加するだけです。</p>



<p>ロジックを追加するのは、かなり難易度が高いです。</p>



<p>しかし、このテンプレートを使うだけで、<strong><span class="marker-under-red">ロジック以外の部分は完成しております</span></strong>ので、勉強がんばりましょう！</p>



<p>　</p>



<div class="wp-block-cocoon-blocks-button-1 button-block"><a href="https://mql-programing.com/download/1644/" class="btn btn-l btn-circle" target="_self">プログラムテンプレートはこちら</a></div>



<p>　</p>



<h2 class="wp-block-heading"><span id="toc16">FX自動売買を24時間稼働</span></h2>



<p><strong>FX自動売買のメリットとして、24時間動かすことが挙げられます。</strong></p>



<p>上記の通り、自動売買はプログラムなので、パソコンを起動することができれば、24時間動かせます。</p>



<p>ですが、パソコンをつけっぱなしにするのは、なかなか難しいです。</p>



<p>そこで<a href="https://mql-programing.com/product/ablenetvps/">VPS</a>を利用しましょう！</p>



<p><strong><span class="marker-under-red">VPSとは、パソコンを24時間起動してくれるサービスです。</span></strong></p>



<p>そのため、自動売買ととても相性が良いので、この機会に調べてみるのも良いでしょう。</p>



<p>　</p>



<h2 class="wp-block-heading"><span id="toc17">まとめ</span></h2>



<p>今回はFX自動売買の作り方から、<a href="https://mql-programing.com/download/1644/">プログラムテンプレート</a>まで解説しました。</p>



<p>自動売買の基本となる口座凍結対策などをプログラムしました。</p>



<p>ロジックの部分は、考えるのが一番楽しいところなので、詳しく解説はしておりませんが、<strong><span class="marker-under-red">他の部分は完璧にできている</span></strong>ので、使ってみてください。</p>



<p>また、自動売買を作成したあとは、<a href="https://mql-programing.com/product/ablenetvps/">VPS</a>を使って24時間動かしてみましょう。</p>



<p>自動売買で稼げるだけでなく、朝起きるのが楽しみになると思います！　</p>



<p>　</p>



<figure class="wp-block-embed is-type-wp-embed is-provider-自動売買を作ろう！ wp-block-embed-自動売買を作ろう！"><div class="wp-block-embed__wrapper">

<a href="https://mql-programing.com/sample_program/" title="MQL4サンプルプログラム" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" width="160" height="90" src="https://mql-programing.com/main29/wp-content/uploads/2021/04/サンプルプログラム一覧-160x90.png" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://mql-programing.com/main29/wp-content/uploads/2021/04/サンプルプログラム一覧-160x90.png 160w, https://mql-programing.com/main29/wp-content/uploads/2021/04/サンプルプログラム一覧-300x169.png 300w, https://mql-programing.com/main29/wp-content/uploads/2021/04/サンプルプログラム一覧-1024x576.png 1024w, https://mql-programing.com/main29/wp-content/uploads/2021/04/サンプルプログラム一覧-768x432.png 768w, https://mql-programing.com/main29/wp-content/uploads/2021/04/サンプルプログラム一覧-1536x864.png 1536w, https://mql-programing.com/main29/wp-content/uploads/2021/04/サンプルプログラム一覧-2048x1152.png 2048w, https://mql-programing.com/main29/wp-content/uploads/2021/04/サンプルプログラム一覧-120x68.png 120w, https://mql-programing.com/main29/wp-content/uploads/2021/04/サンプルプログラム一覧-320x180.png 320w, https://mql-programing.com/main29/wp-content/uploads/2021/04/サンプルプログラム一覧.png 1200w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">MQL4サンプルプログラム</div><div class="blogcard-snippet internal-blogcard-snippet">朝日奈りさ作成したMQL4サンプルプログラムの一覧です。当サイトは、MQL4のサンプルプログラムを公開しています。プログラムの内容を見たり、変更したりできます。　当サイトはMQLプログラミングを学習するサイトです。ご利用の際には、プライバシ</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://mql-programing.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">mql-programing.com</div></div></div></div></a>
</div></figure>



<figure class="wp-block-embed is-type-wp-embed is-provider-自動売買を作ろう！ wp-block-embed-自動売買を作ろう！"><div class="wp-block-embed__wrapper">

<a href="https://mql-programing.com/mql-reference/" title="MQL4リファレンス【全データ一覧】" class="blogcard-wrap internal-blogcard-wrap a-wrap cf"><div class="blogcard internal-blogcard ib-left cf"><div class="blogcard-label internal-blogcard-label"><span class="fa"></span></div><figure class="blogcard-thumbnail internal-blogcard-thumbnail"><img loading="lazy" decoding="async" width="160" height="90" src="https://mql-programing.com/main29/wp-content/uploads/2021/02/MQLリファレンス-160x90.jpg" class="blogcard-thumb-image internal-blogcard-thumb-image wp-post-image" alt="" srcset="https://mql-programing.com/main29/wp-content/uploads/2021/02/MQLリファレンス-160x90.jpg 160w, https://mql-programing.com/main29/wp-content/uploads/2021/02/MQLリファレンス-300x169.jpg 300w, https://mql-programing.com/main29/wp-content/uploads/2021/02/MQLリファレンス-1024x576.jpg 1024w, https://mql-programing.com/main29/wp-content/uploads/2021/02/MQLリファレンス-768x432.jpg 768w, https://mql-programing.com/main29/wp-content/uploads/2021/02/MQLリファレンス-120x68.jpg 120w, https://mql-programing.com/main29/wp-content/uploads/2021/02/MQLリファレンス-320x180.jpg 320w, https://mql-programing.com/main29/wp-content/uploads/2021/02/MQLリファレンス.jpg 1120w" sizes="(max-width: 160px) 100vw, 160px" /></figure><div class="blogcard-content internal-blogcard-content"><div class="blogcard-title internal-blogcard-title">MQL4リファレンス【全データ一覧】</div><div class="blogcard-snippet internal-blogcard-snippet">/*! elementor - v3.6.5 - 27-04-2022 */.e-container.e-container--row .elementor-spacer-inner{width:var(--spacer-size)}.e-</div></div><div class="blogcard-footer internal-blogcard-footer cf"><div class="blogcard-site internal-blogcard-site"><div class="blogcard-favicon internal-blogcard-favicon"><img loading="lazy" decoding="async" src="https://www.google.com/s2/favicons?domain=https://mql-programing.com" alt="" class="blogcard-favicon-image internal-blogcard-favicon-image" width="16" height="16" /></div><div class="blogcard-domain internal-blogcard-domain">mql-programing.com</div></div></div></div></a>
</div></figure>



<p>　</p>
<p>投稿 <a href="https://mql-programing.com/archives/1605/make_autotrade_by_myself/">【MQL4プログラミング】自動売買の作り方！FXで使えるテンプレートあり</a> は <a href="https://mql-programing.com">自動売買を作ろう！</a> に最初に表示されました。</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
