<?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 - FP嶋の資産形成学</title>
	<atom:link href="https://fp-shima.ne.jp/tag/fx/feed/" rel="self" type="application/rss+xml" />
	<link>https://fp-shima.ne.jp</link>
	<description>本当の資産を形成するためにFP嶋に資産形成学を学びましょう</description>
	<lastBuildDate>Sun, 23 Mar 2025 07:47:57 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>
<atom:link rel="hub" href="https://pubsubhubbub.appspot.com"/>
<atom:link rel="hub" href="https://pubsubhubbub.superfeedr.com"/>
<atom:link rel="hub" href="https://websubhub.com/hub"/>
<atom:link rel="self" href="https://fp-shima.ne.jp/tag/fx/feed/"/>
	<item>
		<title>簡単なロジックでEA作成！(8)</title>
		<link>https://fp-shima.ne.jp/2025/05/21/ea8-2/</link>
					<comments>https://fp-shima.ne.jp/2025/05/21/ea8-2/#respond</comments>
		
		<dc:creator><![CDATA[FPshima]]></dc:creator>
		<pubDate>Wed, 21 May 2025 06:41:03 +0000</pubDate>
				<category><![CDATA[pineスクリプト]]></category>
		<category><![CDATA[チャート分析]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[EA]]></category>
		<category><![CDATA[FX]]></category>
		<category><![CDATA[MQL]]></category>
		<category><![CDATA[MT4]]></category>
		<category><![CDATA[チャート]]></category>
		<guid isPermaLink="false">https://fp-shima.ne.jp/?p=3787</guid>

					<description><![CDATA[EA自作企画第8弾！ざっくり勝てそうな戦略で…前回までにEA自体の設定を行いました。今回は本当に簡単なロジックでエントリーするようにします。 なるべく簡単なやつで… maxポジションが4で、riskが10%でした。ってことは、10万円の証拠…]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="463" src="https://fp-shima.ne.jp/wp-content/uploads/2024/08/rakutenmt4-1024x463.png" alt="" class="wp-image-3710" srcset="https://fp-shima.ne.jp/wp-content/uploads/2024/08/rakutenmt4-1024x463.png 1024w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/rakutenmt4-300x136.png 300w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/rakutenmt4-150x68.png 150w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/rakutenmt4-768x347.png 768w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/rakutenmt4-1536x695.png 1536w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/rakutenmt4.png 1859w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">EA自作企画第8弾！ざっくり勝てそうな戦略で…<a href="https://fp-shima.ne.jp/2025/05/14/ea7/">前回</a>までにEA自体の設定を行いました。今回は本当に簡単なロジックでエントリーするようにします。</p>



<h2 class="wp-block-heading">なるべく簡単なやつで…</h2>



<p class="wp-block-paragraph">maxポジションが4で、riskが10%でした。ってことは、10万円の証拠金で、1ドル150円としたら千通貨。ドル円的にはロングだけで入るので、1時間足、SMA20を上抜けたらロング、利益1%で利確とかにしてみましょう。ちょっとだけ工夫してSMAの計算をHighでやってみます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>void EntryTriggerLong(double lots)//引数にロットの大きさを取る
{
   double SMA20_1 = iMA(NULL,0,20,0,MODE_SMA,PRICE_HIGH,1);//ひとつ前の20期間Highの平均
   double SMA20_2 = iMA(NULL,0,20,0,MODE_SMA,PRICE_HIGH,2);//ふたつ前の20期間Highの平均
   double close1 = Close[1];//ひとつ前の終値
   double close2 = Close[2];//ふたつ前の終値
   if(SMA20_1 &lt; close1 && SMA20_2 &gt;close2)//ふたつ前からひとつ前にかけてローソクのゴールデンクロス
   {
      int ticket = OrderSend(NULL,OP_BUY,lots,Ask,5,0,0,&quot;&quot;,0,0,clrBlue);//ロングする
   }
}</code></pre></div>



<p class="wp-block-paragraph">こんな感じで実装してみました。</p>



<p class="wp-block-paragraph">全体のコードです。設定も少しいじりました。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>//+------------------------------------------------------------------+
//|                                                 OnewayTrader.mq4 |
//|                                          Copyright 2025, FPshima |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright &quot;Copyright 2025, FPshima&quot;
#property link      &quot;https://www.mql5.com&quot;
#property version   &quot;1.00&quot;
#property strict

extern bool LongOn = true; //ロングを許可
extern bool ShortOn = false;//ショートを許可

extern int zone = 100;   //エントリー不可範囲
extern int maxPosition = 4;  //最大ポジション数
extern int LongMAX = 4; // ロングポジションの最大数
extern int ShortMAX = 2; //　ショートポジションの最大数
extern double risk = 5; //取りうる最大リスク
extern double profitRate = 1;//利確
double calculateLotSize()
{
   double accountBalance = AccountBalance();
   double totalRiskAmount = accountBalance * risk/100;
   double eachPositionRisk = totalRiskAmount/maxPosition;
   double minLot = MarketInfo(NULL,MODE_MINLOT);
   double marginRequire = MarketInfo(NULL,MODE_MARGINREQUIRED)*minLot;
   double lotSize = (eachPositionRisk / marginRequire)*minLot;
   if(lotSize &lt;= minLot)
   {
      lotSize = minLot;
   }
   if(lotSize &lt;= 20.0)
   {
     lotSize = NormalizeDouble(lotSize,2);
   }
   if(lotSize &gt; 20.0)
   {
      lotSize = 20.0;
   }
   return lotSize;
}

bool EntryJudge(int tradeType)
{
   double zonePips = zone *Point*10;
   int currentPositions = 0;
   int currentLongPositions =0;
   int currentShortPositions = 0;

   
   for(int i = 0 ; i &lt; OrdersTotal(); i++)
   {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
      {
         currentPositions++;
         if(OrderType() == tradeType && MathAbs(OrderOpenPrice()-Ask) &lt;= zonePips && OrderType() == OP_BUY)
         {
            return false;
         }
         
         if(OrderType() == tradeType && MathAbs(OrderOpenPrice()-Bid) &lt;= zonePips && OrderType() == OP_SELL)
         {
            return false;
         }
         if(OrderType() == OP_BUY) currentLongPositions++;
         if(OrderType() == OP_SELL) currentShortPositions++;
      }
   }
   if(currentPositions &lt; maxPosition )
   {
   if(tradeType == OP_BUY && currentLongPositions &lt; LongMAX)
   {
      return true;
   }else{
   
      return false;
   }
   if(tradeType == OP_SELL && currentShortPositions &lt; ShortMAX)
   {
      return true;
   }else{
   
      return false;
   }
   }else{
   return false;}
}

void CheckAndClosePositions(double profitPercent)
{
   double accountBalance = AccountBalance();
   int totalPositions = 0;
   double totalProfit = 0;
   
   for(int i = 0; i&lt; OrdersTotal(); i++)
   {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
      {
         double positionProfit = OrderProfit() + OrderSwap() - OrderCommission();
         totalProfit += positionProfit;
         totalPositions++;
      }
   }
   double eachProfit = accountBalance * profitPercent/100;
   double targetTotalProfit = accountBalance * profitPercent/100;
   
   if(totalPositions &gt;1)
   {
      targetTotalProfit /= totalPositions;
   }
   
   for(int i = OrdersTotal() -1 ; i&gt;= 0 ; i--)
   {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
      {
         double positionProfit = OrderProfit() + OrderSwap() - OrderCommission();
         
         if(totalProfit &gt;= targetTotalProfit)
         {
            OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),5,clrBlue);
         }
      
      if(positionProfit &gt;= eachProfit)
      {
         OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),5,clrBlue);
      }
      }
   }
   
}
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   CheckAndClosePositions(profitRate);
   double tradeLot = calculateLotSize();
   if(EntryJudge(OP_BUY) && LongOn == true)
   {
      EntryTriggerLong(tradeLot);
   }
}
void EntryTriggerLong(double lots)
{
   double SMA20_1 = iMA(NULL,0,20,0,MODE_SMA,PRICE_HIGH,1);
   double SMA20_2 = iMA(NULL,0,20,0,MODE_SMA,PRICE_HIGH,2);
   double close1 = Close[1];
   double close2 = Close[2];
   if(SMA20_1 &lt; close1 && SMA20_2 &gt;close2)
   {
      int ticket = OrderSend(NULL,OP_BUY,lots,Ask,5,0,0,&quot;&quot;,0,0,clrBlue);
   }
}</code></pre></div>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="181" src="https://fp-shima.ne.jp/wp-content/uploads/2025/03/EA結果-1024x181.png" alt="" class="wp-image-3938" srcset="https://fp-shima.ne.jp/wp-content/uploads/2025/03/EA結果-1024x181.png 1024w, https://fp-shima.ne.jp/wp-content/uploads/2025/03/EA結果-300x53.png 300w, https://fp-shima.ne.jp/wp-content/uploads/2025/03/EA結果-150x26.png 150w, https://fp-shima.ne.jp/wp-content/uploads/2025/03/EA結果-768x135.png 768w, https://fp-shima.ne.jp/wp-content/uploads/2025/03/EA結果-1536x271.png 1536w, https://fp-shima.ne.jp/wp-content/uploads/2025/03/EA結果.png 1894w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">まぁ増えてはいますが、思いのほか伸びませんね！EAの難しいところだと思います！エントリーロジックや、資金管理を工夫すればもっと良い戦略もとれるかも！色々工夫してみてください！</p>



<a href="https://px.a8.net/svt/ejp?a8mat=3T0G8I+D15NSA+48D0+6AJV5" rel="nofollow">
<img decoding="async" border="0" width="728" height="90" alt="" src="https://www21.a8.net/svt/bgt?aid=230128434788&wid=004&eno=01&mid=s00000019746001057000&mc=1"></a>
<img loading="lazy" decoding="async" border="0" width="1" height="1" src="https://www12.a8.net/0.gif?a8mat=3T0G8I+D15NSA+48D0+6AJV5" alt=""><a href="https://www.tcs-asp.net/alink?AC=C100628&LC=RSEC2&SQ=0&isq=204"><img decoding="async" src="https://img.tcs-asp.net/imagesender?ac=C100628&lc=RSEC2&isq=204&psq=0" border="0" alt="楽天証券（FX）"></a>



<h2 class="wp-block-heading">おすすめFXアイテム</h2>



<p class="wp-block-paragraph">過去検証や分析はMT4かFT4、Trading viewがおすすめです。</p>



<p class="wp-block-paragraph">無料が良い人はMT4で、MT4を使わせてくれる口座を使用すると良いです。おすすめはFXTF</p>



<p class="wp-block-paragraph">ガチで過去検証をやりたい人はFT4、<a href="https://h.accesstrade.net/sp/cc?rk=0100kxwf00j59w"></a></p>



<p class="wp-block-paragraph">チャート分析に毎月課金してもいいよって人はTrading viewがおすすめです。無料もあります</p>



<a href="https://px.a8.net/svt/ejp?a8mat=3T0G8I+D15NSA+48D0+6AC5D" rel="nofollow">
<img loading="lazy" decoding="async" border="0" width="728" height="90" alt="" src="https://www28.a8.net/svt/bgt?aid=230128434788&wid=004&eno=01&mid=s00000019746001056000&mc=1"></a>
<img loading="lazy" decoding="async" border="0" width="1" height="1" src="https://www18.a8.net/0.gif?a8mat=3T0G8I+D15NSA+48D0+6AC5D" alt=""> <a rel="nofollow" href="//af.moshimo.com/af/c/click?a_id=1717521&amp;p_id=2360&amp;pc_id=5104&amp;pl_id=30913&amp;guid=ON"><img loading="lazy" decoding="async" width="300" height="250" style="border:none;" src="//image.moshimo.com/af-img/1739/000000030913.jpg"></a><img loading="lazy" decoding="async" width="1" height="1" style="border:none;" src="//i.moshimo.com/af/i/impression?a_id=1717521&amp;p_id=2360&amp;pc_id=5104&amp;pl_id=30913"> <a rel="noopener noreferrer" href="https://tradingview.go2cloud.org/aff_c?offer_id=2&amp;aff_id=20855&amp;file_id=292" target="_blank"><img loading="lazy" decoding="async" width="728" height="90" border="0" src="https://media.go2speed.org/brand/files/tradingview/2/728x90.jpg"></a><img loading="lazy" decoding="async" width="0" height="0" border="0" style="position:absolute;visibility:hidden;" src="https://tradingview.go2cloud.org/aff_i?offer_id=2&amp;file_id=292&amp;aff_id=20855">
]]></content:encoded>
					
					<wfw:commentRss>https://fp-shima.ne.jp/2025/05/21/ea8-2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>EAを自作してみよう！ポジションをクローズするよ！(7)</title>
		<link>https://fp-shima.ne.jp/2025/05/14/ea7/</link>
					<comments>https://fp-shima.ne.jp/2025/05/14/ea7/#respond</comments>
		
		<dc:creator><![CDATA[FPshima]]></dc:creator>
		<pubDate>Wed, 14 May 2025 05:12:02 +0000</pubDate>
				<category><![CDATA[pineスクリプト]]></category>
		<category><![CDATA[チャート分析]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[EA]]></category>
		<category><![CDATA[FX]]></category>
		<category><![CDATA[MQL]]></category>
		<category><![CDATA[MT4]]></category>
		<category><![CDATA[チャート]]></category>
		<guid isPermaLink="false">https://fp-shima.ne.jp/?p=3750</guid>

					<description><![CDATA[EA自作企画第7弾！準備がまだ！って人は先に準備しましょう！こっちのページを参照してね！ こちらのサイトのようなところへ行けば、EA自体は購入が可能です。 これまでに、エントリーは出来るようになりましたが、利確がされていませんでした。そこで…]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="463" src="https://fp-shima.ne.jp/wp-content/uploads/2024/08/rakutenmt4-1024x463.png" alt="" class="wp-image-3710" srcset="https://fp-shima.ne.jp/wp-content/uploads/2024/08/rakutenmt4-1024x463.png 1024w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/rakutenmt4-300x136.png 300w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/rakutenmt4-150x68.png 150w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/rakutenmt4-768x347.png 768w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/rakutenmt4-1536x695.png 1536w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/rakutenmt4.png 1859w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">EA自作企画第7弾！準備がまだ！って人は先に準備しましょう！こっちの<a href="https://fp-shima.ne.jp/2024/08/24/ea1/">ページを参照</a>してね！</p>



<p class="wp-block-paragraph">こちらのサイトのようなところへ行けば、EA自体は購入が可能です。</p>



<a href="https://www.gogojungle.co.jp/re/YvufDmBmZnPW7wZ" rel="nofollow"><img decoding="async" src="https://www.gogojungle.co.jp/img/affiliates/1040/1" alt="投資家の祭典 GogoJungle AWARD 2023" width="728px" height="90px"></a><img loading="lazy" decoding="async" class="ext-content" style="display: block;" border="0" width="1" height="1" src="https://www.gogojungle.co.jp/re/img/YvufDmBmZnPW7wZ"/>



<p class="wp-block-paragraph"><a href="https://fp-shima.ne.jp/2025/05/07/ea6/">これまで</a>に、エントリーは出来るようになりましたが、利確がされていませんでした。そこで今回は、一定の利益になったらポジションクローズするようにしてみます。</p>



<h2 class="wp-block-heading">目標とするEAに近づけたい…</h2>



<div class="wp-block-dvaux-frame sc_frame_wrap inframe"><div class="sc_frame_title inframe" style="background-color:#70b8f1">自作EAの条件</div><div class="sc_frame" style="background-color:#fff;border-color:#70b8f1">
<p class="wp-block-paragraph">損切しない！</p>



<p class="wp-block-paragraph">スワップが増える方向にだけエントリー</p>



<p class="wp-block-paragraph">似たようなところでエントリーしない！</p>



<p class="wp-block-paragraph">最大ポジション数を取った時にレバレッジ10倍を超えない！</p>
</div></div>



<div class="wp-block-dvaux-frame sc_frame_wrap inline"><div class="sc_frame_title inline" style="background-color:#2ac113">年利と月利</div><div class="sc_frame" style="background-color:#fff;border-color:#2ac113">
<div class="wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-dc0c0d66 wp-block-group-is-layout-flex">
<p class="wp-block-paragraph">年利　1%　→　月利　0.08%</p>



<p class="wp-block-paragraph">　　　2%　→　　　　0.17%</p>



<p class="wp-block-paragraph">　　　5%　→　　　　0.41%</p>



<p class="wp-block-paragraph">　　10％　→　　　　0.8%</p>



<p class="wp-block-paragraph">　　30%　→　　　　2.21%</p>



<p class="wp-block-paragraph">　　<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-light-red-color"><strong>50%　→　　　　3.44%</strong></mark></p>



<p class="wp-block-paragraph">100%（2倍)　→　　　5.95%</p>



<p class="wp-block-paragraph">200%（3倍)　→　　　9.59%</p>
</div>
</div></div>



<p class="wp-block-paragraph">以下のようにしてみました。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>//+------------------------------------------------------------------+
//|                                                 OnewayTrader.mq4 |
//|                                          Copyright 2025, FPshima |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright &quot;Copyright 2025, FPshima&quot;
#property link      &quot;https://www.mql5.com&quot;
#property version   &quot;1.00&quot;
#property strict

extern bool LongOn = true;//ロングを許可
extern bool ShortOn = false;//ショートを許可

extern int zone = 50;//エントリー不可範囲
extern int maxPosition = 4;//最大ポジション数
extern double risk = 10;//取りうる最大リスク

extern double profitRate = 2;//新たに利確ラインを設定できるようにした

double calculateLotSize()
{
   double accountBalance = AccountBalance();
   double totalRiskAmount = accountBalance * risk/100;
   double eachPositionRisk = totalRiskAmount/maxPosition;
   double minLot = MarketInfo(NULL,MODE_MINLOT);
   double marginRequire = MarketInfo(NULL,MODE_MARGINREQUIRED)*minLot;
   double lotSize = (eachPositionRisk / marginRequire)*minLot;
   if(lotSize &lt;= minLot)
   {
      lotSize = minLot;
   }
   if(lotSize &lt;= 20.0)
   {
     lotSize = NormalizeDouble(lotSize,2);
   }
   if(lotSize &gt; 20.0)
   {
      lotSize = 20.0;
   }
   return lotSize;
}

bool EntryJudge(int tradeType)
{
   double zonePips = zone *Point*10;
   int currentPositions = 0;
   

   
   for(int i = 0 ; i &lt; OrdersTotal(); i++)
   {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
      {
         currentPositions++;
         if(OrderType() == tradeType && MathAbs(OrderOpenPrice()-Ask) &lt;= zonePips && OrderType() == OP_BUY)
         {
            return false;
         }
         
         if(OrderType() == tradeType && MathAbs(OrderOpenPrice()-Bid) &lt;= zonePips && OrderType() == OP_SELL)
         {
            return false;
         }
      }
   }
   if(currentPositions &lt; maxPosition)
   {
      return true;
   }else{
   
      return false;
   }
}

void CheckAndClosePositions(double profitPercent)//　後々利確ラインをexternだけじゃない方法で決められるように引数設定
{
   double accountBalance = AccountBalance();
   int totalPositions = 0;
   double totalProfit = 0;
   
   for(int i = 0; i&lt; OrdersTotal(); i++)
   {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
      {
         double positionProfit = OrderProfit() + OrderSwap() - OrderCommission();//利益を調査
         totalProfit += positionProfit;//どんどん足して、全ポジの合計にする
         totalPositions++;
      }
   }
   double eachProfit = accountBalance * profitPercent/100;//個々のポジションの利確ライン
   double targetTotalProfit = accountBalance * profitPercent/100;//トータルも一緒
   
   if(totalPositions &gt;1)//トータルポジションが2個以上の時
   {
      targetTotalProfit /= totalPositions;//ポジションの数に応じて利確ラインを下げる
   }
   
   for(int i = OrdersTotal() -1 ; i&gt;= 0 ; i--)//iがマイナスになってる点が味噌
   {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))//ポジションチェック
      {
         double positionProfit = OrderProfit() + OrderSwap() - OrderCommission();
         
         if(totalProfit &gt;= targetTotalProfit)//現有ポジションが目的利益よりも儲かってたら
         {
            OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),5,clrBlue);//全部利確
         }
      
      if(positionProfit &gt;= eachProfit)//単一のポジションで目的地を超えてたら
      {
         OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),5,clrBlue);//利確
      }
      }
   }
   
}
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---


   CheckAndClosePositions(profitRate);//新しい変数を参照して利確ラインを検討
   double tradeLot = calculateLotSize();
   Comment(&quot;lotSize&quot;,tradeLot,&quot;  Zonejudge  &quot; , EntryJudge(OP_BUY));
   if(EntryJudge(OP_BUY) && LongOn == true)
   {
     OrderSend(NULL,OP_BUY,tradeLot,Ask,5,0,0,&quot;Long&quot;,0,0,clrRed);
   }
   if(EntryJudge(OP_SELL) && ShortOn != false)
   {
     OrderSend(NULL,OP_SELL,tradeLot,Bid,5,0,0,&quot;Short&quot;,0,0,clrRed);
   }
  }
//+------------------------------------------------------------------+
</code></pre></div>



<p class="wp-block-paragraph">ポジションをチェックする関数を入れました。</p>



<p class="wp-block-paragraph">見てみましょう。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>void CheckAndClosePositions(double profitPercent)//　後々利確ラインをexternだけじゃない方法で決められるように引数設定
{
   double accountBalance = AccountBalance();
   int totalPositions = 0;
   double totalProfit = 0;
   
   for(int i = 0; i&lt; OrdersTotal(); i++)
   {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
      {
         double positionProfit = OrderProfit() + OrderSwap() - OrderCommission();//利益を調査
         totalProfit += positionProfit;//どんどん足して、全ポジの合計にする
         totalPositions++;
      }
   }
   double eachProfit = accountBalance * profitPercent/100;//個々のポジションの利確ライン
   double targetTotalProfit = accountBalance * profitPercent/100;//トータルも一緒
   
   if(totalPositions &gt;1)//トータルポジションが2個以上の時
   {
      targetTotalProfit /= totalPositions;//ポジションの数に応じて利確ラインを下げる
   }
   
   for(int i = OrdersTotal() -1 ; i&gt;= 0 ; i--)//iがマイナスになってる点が味噌
   {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))//ポジションチェック
      {
         double positionProfit = OrderProfit() + OrderSwap() - OrderCommission();
         
         if(totalProfit &gt;= targetTotalProfit)//現有ポジションが目的利益よりも儲かってたら
         {
            OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),5,clrBlue);//全部利確
         }
      
      if(positionProfit &gt;= eachProfit)//単一のポジションで目的地を超えてたら
      {
         OrderClose(OrderTicket(),OrderLots(),OrderClosePrice(),5,clrBlue);//利確
      }
      }
   }
   
}</code></pre></div>



<p class="wp-block-paragraph">ここまで読んでくれているとある程度分かってくることもあると思うので、新規なところを説明します。</p>



<p class="wp-block-paragraph">OrderProfit() + OrderSwap() - OrderCommission()は、順に、含み益、含みスワップポイント、手数料です。したがって、これを合算することで、そのポジションの利益がわかります。</p>



<p class="wp-block-paragraph">totalProfit += positionProfit　ポジションが複数あると、for文でループするので、ポジションごとに利益が加算され、合計損益となります。</p>



<p class="wp-block-paragraph">double eachProfit = accountBalance * profitPercent/100<br>double targetTotalProfit = accountBalance * profitPercent/100　この2つは同じ式ですが、次の式で意味が変わるようになっています。一方、単一ポジションならいずれにしても利確されます。</p>



<p class="wp-block-paragraph">targetTotalProfit /= totalPositions　ポジションが複数あるときは、証拠金的にもリスクがありますし、出来る限り早く逃げたいので、利確ラインをポジション数分減らしていっています。ループ処理ではないので、数に応じて割っています。</p>



<p class="wp-block-paragraph">後半のfor文は、利確のためのfor文なのですが、ポジションをクローズする際に、ひとつずつクローズされます。この時、下から順にクローズすると、ポジション総数が変わってしまうため、i++だとうまく決済されません。したがって、i--として、ポジション数を最大値から減らしていってすべて決済できるように書きます<br></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="241" src="https://fp-shima.ne.jp/wp-content/uploads/2024/08/ea5-1024x241.png" alt="" class="wp-image-3752" srcset="https://fp-shima.ne.jp/wp-content/uploads/2024/08/ea5-1024x241.png 1024w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/ea5-300x71.png 300w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/ea5-150x35.png 150w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/ea5-768x181.png 768w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/ea5-1536x361.png 1536w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/ea5.png 1659w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">2ポジション持った時、同時に同じ位置で決済されていますね！これはナンピンした結果、より有利な位置から入れた分の利益で、あまり良くないポジションをうまい事決済しています。</p>



<p class="wp-block-paragraph">ただ、エントリーに関してまだロジックが無いので、決済したと同時エントリーし、そこからzone離れた部分で次のポジションをとっています。このままだと、そもそも決済した意味があまりないですね…</p>



<p class="wp-block-paragraph"><a href="https://fp-shima.ne.jp/2025/05/21/ea8/">次回</a>はついにロジックです！といっても大したロジックにはしません！損切しませんし！</p>



<a href="https://px.a8.net/svt/ejp?a8mat=3T0G8I+D15NSA+48D0+6AJV5" rel="nofollow">
<img loading="lazy" decoding="async" border="0" width="728" height="90" alt="" src="https://www21.a8.net/svt/bgt?aid=230128434788&wid=004&eno=01&mid=s00000019746001057000&mc=1"></a>
<img loading="lazy" decoding="async" border="0" width="1" height="1" src="https://www12.a8.net/0.gif?a8mat=3T0G8I+D15NSA+48D0+6AJV5" alt=""><a href="https://www.tcs-asp.net/alink?AC=C100628&LC=RSEC2&SQ=0&isq=204"><img decoding="async" src="https://img.tcs-asp.net/imagesender?ac=C100628&lc=RSEC2&isq=204&psq=0" border="0" alt="楽天証券（FX）"></a>



<h2 class="wp-block-heading">おすすめFXアイテム</h2>



<p class="wp-block-paragraph">過去検証や分析はMT4かFT4、Trading viewがおすすめです。</p>



<p class="wp-block-paragraph">無料が良い人はMT4で、MT4を使わせてくれる口座を使用すると良いです。おすすめはFXTF</p>



<p class="wp-block-paragraph">ガチで過去検証をやりたい人はFT4、<a href="https://h.accesstrade.net/sp/cc?rk=0100kxwf00j59w"></a></p>



<p class="wp-block-paragraph">チャート分析に毎月課金してもいいよって人はTrading viewがおすすめです。無料もあります</p>



<a href="https://px.a8.net/svt/ejp?a8mat=3T0G8I+D15NSA+48D0+6AC5D" rel="nofollow">
<img loading="lazy" decoding="async" border="0" width="728" height="90" alt="" src="https://www28.a8.net/svt/bgt?aid=230128434788&wid=004&eno=01&mid=s00000019746001056000&mc=1"></a>
<img loading="lazy" decoding="async" border="0" width="1" height="1" src="https://www18.a8.net/0.gif?a8mat=3T0G8I+D15NSA+48D0+6AC5D" alt=""> <a rel="nofollow" href="//af.moshimo.com/af/c/click?a_id=1717521&amp;p_id=2360&amp;pc_id=5104&amp;pl_id=30913&amp;guid=ON"><img loading="lazy" decoding="async" width="300" height="250" style="border:none;" src="//image.moshimo.com/af-img/1739/000000030913.jpg"></a><img loading="lazy" decoding="async" width="1" height="1" style="border:none;" src="//i.moshimo.com/af/i/impression?a_id=1717521&amp;p_id=2360&amp;pc_id=5104&amp;pl_id=30913"> <a rel="noopener noreferrer" href="https://tradingview.go2cloud.org/aff_c?offer_id=2&amp;aff_id=20855&amp;file_id=292" target="_blank"><img loading="lazy" decoding="async" width="728" height="90" border="0" src="https://media.go2speed.org/brand/files/tradingview/2/728x90.jpg"></a><img loading="lazy" decoding="async" width="0" height="0" border="0" style="position:absolute;visibility:hidden;" src="https://tradingview.go2cloud.org/aff_i?offer_id=2&amp;file_id=292&amp;aff_id=20855">
]]></content:encoded>
					
					<wfw:commentRss>https://fp-shima.ne.jp/2025/05/14/ea7/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>EAを自作してみよう！これぞOneway！両建ても可！(6)</title>
		<link>https://fp-shima.ne.jp/2025/05/07/ea6/</link>
					<comments>https://fp-shima.ne.jp/2025/05/07/ea6/#respond</comments>
		
		<dc:creator><![CDATA[FPshima]]></dc:creator>
		<pubDate>Wed, 07 May 2025 05:10:54 +0000</pubDate>
				<category><![CDATA[pineスクリプト]]></category>
		<category><![CDATA[チャート分析]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[EA]]></category>
		<category><![CDATA[FX]]></category>
		<category><![CDATA[MQL]]></category>
		<category><![CDATA[MT4]]></category>
		<category><![CDATA[チャート]]></category>
		<guid isPermaLink="false">https://fp-shima.ne.jp/?p=3743</guid>

					<description><![CDATA[EA自作企画第6弾！準備がまだ！って人は先に準備しましょう！こっちのページを参照してね！ こちらのサイトのようなところへ行けば、EA自体は購入が可能です。 今回は最初に作ったLongOn、ShortOnを使って、ロングエントリーとショートエ…]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="463" src="https://fp-shima.ne.jp/wp-content/uploads/2024/08/rakutenmt4-1024x463.png" alt="" class="wp-image-3710" srcset="https://fp-shima.ne.jp/wp-content/uploads/2024/08/rakutenmt4-1024x463.png 1024w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/rakutenmt4-300x136.png 300w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/rakutenmt4-150x68.png 150w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/rakutenmt4-768x347.png 768w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/rakutenmt4-1536x695.png 1536w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/rakutenmt4.png 1859w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">EA自作企画第6弾！準備がまだ！って人は先に準備しましょう！こっちの<a href="https://fp-shima.ne.jp/2024/08/24/ea1/">ページを参照</a>してね！</p>



<p class="wp-block-paragraph">こちらのサイトのようなところへ行けば、EA自体は購入が可能です。</p>



<a href="https://www.gogojungle.co.jp/re/YvufDmBmZnPW7wZ" rel="nofollow"><img decoding="async" src="https://www.gogojungle.co.jp/img/affiliates/1040/1" alt="投資家の祭典 GogoJungle AWARD 2023" width="728px" height="90px"></a><img loading="lazy" decoding="async" class="ext-content" style="display: block;" border="0" width="1" height="1" src="https://www.gogojungle.co.jp/re/img/YvufDmBmZnPW7wZ"/>



<p class="wp-block-paragraph">今回は最初に作ったLongOn、ShortOnを使って、ロングエントリーとショートエントリーを制限していきます。</p>



<h2 class="wp-block-heading">目標とするEAに近づけたい…</h2>



<div class="wp-block-dvaux-frame sc_frame_wrap inframe"><div class="sc_frame_title inframe" style="background-color:#70b8f1">自作EAの条件</div><div class="sc_frame" style="background-color:#fff;border-color:#70b8f1">
<p class="wp-block-paragraph">損切しない！</p>



<p class="wp-block-paragraph">スワップが増える方向にだけエントリー</p>



<p class="wp-block-paragraph">似たようなところでエントリーしない！</p>



<p class="wp-block-paragraph">最大ポジション数を取った時にレバレッジ10倍を超えない！</p>
</div></div>



<p class="wp-block-paragraph">最初に作った一方向のための設定LongOn,ShortOnを使って、エントリー制限を設けます。これ自体は簡単なのですが、どの段階で判定するかってので、趣味というか効率というかなんというか色々書けそうです。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>//+------------------------------------------------------------------+
//|                                                 OnewayTrader.mq4 |
//|                                          Copyright 2025, FPshima |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright &quot;Copyright 2025, FPshima&quot;
#property link      &quot;https://www.mql5.com&quot;
#property version   &quot;1.00&quot;
#property strict

extern bool LongOn = true; //ロングを許可
extern bool ShortOn = false;//ショートを許可

extern int zone = 50;   //エントリー不可範囲
extern int maxPosition = 4;  //最大ポジション数
extern double risk = 10; //取りうる最大リスク

double calculateLotSize()
{
   double accountBalance = AccountBalance();
   double totalRiskAmount = accountBalance * risk/100;
   double eachPositionRisk = totalRiskAmount/maxPosition;
   double minLot = MarketInfo(NULL,MODE_MINLOT);
   double marginRequire = MarketInfo(NULL,MODE_MARGINREQUIRED)*minLot;
   double lotSize = (eachPositionRisk / marginRequire)*minLot;
   if(lotSize &lt;= minLot)
   {
      lotSize = minLot;
   }
   if(lotSize &lt;= 20.0)
   {
     lotSize = NormalizeDouble(lotSize,2);
   }
   if(lotSize &gt; 20.0)
   {
      lotSize = 20.0;
   }
   return lotSize;
}

bool EntryJudge(int tradeType)
{
   double zonePips = zone *Point*10;
   int currentPositions = 0;
   

   
   for(int i = 0 ; i &lt; OrdersTotal(); i++)
   {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))
      {
         currentPositions++;
         if(OrderType() == tradeType && MathAbs(OrderOpenPrice()-Ask) &lt;= zonePips && OrderType() == OP_BUY)
         {
            return false;
         }
         
         if(OrderType() == tradeType && MathAbs(OrderOpenPrice()-Bid) &lt;= zonePips && OrderType() == OP_SELL)
         {
            return false;
         }
      }
   }
   if(currentPositions &lt; maxPosition)
   {
      return true;
   }else{
   
      return false;
   }
}
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---

   double tradeLot = calculateLotSize();
   Comment(&quot;lotSize&quot;,tradeLot,&quot;  Zonejudge  &quot; , EntryJudge(OP_BUY));
   if(EntryJudge(OP_BUY) && LongOn == true)
   {
     OrderSend(NULL,OP_BUY,tradeLot,Ask,5,0,0,&quot;Long&quot;,0,0,clrRed);
   }
   if(EntryJudge(OP_SELL) && ShortOn != false)
   {
     OrderSend(NULL,OP_SELL,tradeLot,Bid,5,0,0,&quot;Short&quot;,0,0,clrRed);
   }
  }
//+------------------------------------------------------------------+
</code></pre></div>



<p class="wp-block-paragraph">一番わかりやすい、ロングショートのオーダーを送る直前に入れました。複数のオーダー判定をするような場合はもっと上位で判断したほうが良いでしょうけれど、ここが一番わかりやすいかなーという事で、入れました。</p>



<p class="wp-block-paragraph">ただ、ほとんど変化が無いので、ちょっとだけ書き方を工夫</p>



<p class="wp-block-paragraph">前回と違いのあるvoid　OnTick()だけ見てみましょう</p>



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

   double tradeLot = calculateLotSize();
   Comment(&quot;lotSize&quot;,tradeLot,&quot;  Zonejudge  &quot; , EntryJudge(OP_BUY));
   if(EntryJudge(OP_BUY) && LongOn == true)
   {
     OrderSend(NULL,OP_BUY,tradeLot,Ask,5,0,0,&quot;Long&quot;,0,0,clrRed);
   }
   if(EntryJudge(OP_SELL) && ShortOn != false)
   {
     OrderSend(NULL,OP_SELL,tradeLot,Bid,5,0,0,&quot;Short&quot;,0,0,clrRed);
   }
  }
//+------------------------------------------------------------------+</code></pre></div>



<p class="wp-block-paragraph">トレードするか否かのEntryJudgeと同時に&amp;&amp;でつないでLongOn ＝＝trueか　ShortOn !=falseかにしました。ほとんど変化が無いので、あえて、書き方を変えています。ほぼ同じ意味ですが。</p>



<p class="wp-block-paragraph">==は前回も伝えていますが　同じならば～という意味。一方！は否定形で使われるので、!=は出ないとき～になります。したがって、falseではないとき～という事になります。ただ気を付けたいのはfalseでなければいいので、trueとは限らないという微妙な話になります。まぁ細かい話はしませんが、エラーのもとになったりもするので、書き方には気を使いましょう(笑)</p>



<p class="wp-block-paragraph">なお!LongOnと書いた場合　LongOnがtrueでない　となります。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="244" src="https://fp-shima.ne.jp/wp-content/uploads/2024/08/ea4-1024x244.png" alt="" class="wp-image-3748" srcset="https://fp-shima.ne.jp/wp-content/uploads/2024/08/ea4-1024x244.png 1024w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/ea4-300x71.png 300w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/ea4-150x36.png 150w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/ea4-768x183.png 768w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/ea4-1536x365.png 1536w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/ea4.png 1681w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">実際にLongOnもShortOnもtrueにするとこんな感じ。どちらも同時に入ってしまっているので重なっていますが、ロングもショートも同じ価格でエントリーされています。合わせて4ポジションなのでこれ以上エントリーしません。</p>



<p class="wp-block-paragraph">ちゃんと動いていますね。trueやfalseの設定を変えてどう変化するか見てみてください</p>



<p class="wp-block-paragraph"><a href="https://fp-shima.ne.jp/2025/05/14/ea7/">次回</a>はオーダーをクローズしますよ！</p>



<a href="https://px.a8.net/svt/ejp?a8mat=3T0G8I+D15NSA+48D0+6AJV5" rel="nofollow">
<img loading="lazy" decoding="async" border="0" width="728" height="90" alt="" src="https://www21.a8.net/svt/bgt?aid=230128434788&wid=004&eno=01&mid=s00000019746001057000&mc=1"></a>
<img loading="lazy" decoding="async" border="0" width="1" height="1" src="https://www12.a8.net/0.gif?a8mat=3T0G8I+D15NSA+48D0+6AJV5" alt=""><a href="https://www.tcs-asp.net/alink?AC=C100628&LC=RSEC2&SQ=0&isq=204"><img decoding="async" src="https://img.tcs-asp.net/imagesender?ac=C100628&lc=RSEC2&isq=204&psq=0" border="0" alt="楽天証券（FX）"></a>



<h2 class="wp-block-heading">おすすめFXアイテム</h2>



<p class="wp-block-paragraph">過去検証や分析はMT4かFT4、Trading viewがおすすめです。</p>



<p class="wp-block-paragraph">無料が良い人はMT4で、MT4を使わせてくれる口座を使用すると良いです。おすすめはFXTF</p>



<p class="wp-block-paragraph">ガチで過去検証をやりたい人はFT4、<a href="https://h.accesstrade.net/sp/cc?rk=0100kxwf00j59w"></a></p>



<p class="wp-block-paragraph">チャート分析に毎月課金してもいいよって人はTrading viewがおすすめです。無料もあります</p>



<a href="https://px.a8.net/svt/ejp?a8mat=3T0G8I+D15NSA+48D0+6AC5D" rel="nofollow">
<img loading="lazy" decoding="async" border="0" width="728" height="90" alt="" src="https://www28.a8.net/svt/bgt?aid=230128434788&wid=004&eno=01&mid=s00000019746001056000&mc=1"></a>
<img loading="lazy" decoding="async" border="0" width="1" height="1" src="https://www18.a8.net/0.gif?a8mat=3T0G8I+D15NSA+48D0+6AC5D" alt=""> <a rel="nofollow" href="//af.moshimo.com/af/c/click?a_id=1717521&amp;p_id=2360&amp;pc_id=5104&amp;pl_id=30913&amp;guid=ON"><img loading="lazy" decoding="async" width="300" height="250" style="border:none;" src="//image.moshimo.com/af-img/1739/000000030913.jpg"></a><img loading="lazy" decoding="async" width="1" height="1" style="border:none;" src="//i.moshimo.com/af/i/impression?a_id=1717521&amp;p_id=2360&amp;pc_id=5104&amp;pl_id=30913"> <a rel="noopener noreferrer" href="https://tradingview.go2cloud.org/aff_c?offer_id=2&amp;aff_id=20855&amp;file_id=292" target="_blank"><img loading="lazy" decoding="async" width="728" height="90" border="0" src="https://media.go2speed.org/brand/files/tradingview/2/728x90.jpg"></a><img loading="lazy" decoding="async" width="0" height="0" border="0" style="position:absolute;visibility:hidden;" src="https://tradingview.go2cloud.org/aff_i?offer_id=2&amp;file_id=292&amp;aff_id=20855">
]]></content:encoded>
					
					<wfw:commentRss>https://fp-shima.ne.jp/2025/05/07/ea6/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>EAを自作してみよう！無駄なトレードは減らそう！(5)</title>
		<link>https://fp-shima.ne.jp/2025/04/30/ea5/</link>
					<comments>https://fp-shima.ne.jp/2025/04/30/ea5/#respond</comments>
		
		<dc:creator><![CDATA[FPshima]]></dc:creator>
		<pubDate>Wed, 30 Apr 2025 05:09:55 +0000</pubDate>
				<category><![CDATA[pineスクリプト]]></category>
		<category><![CDATA[チャート分析]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[EA]]></category>
		<category><![CDATA[FX]]></category>
		<category><![CDATA[MQL]]></category>
		<category><![CDATA[MT4]]></category>
		<category><![CDATA[チャート]]></category>
		<guid isPermaLink="false">https://fp-shima.ne.jp/?p=3739</guid>

					<description><![CDATA[EA自作企画第5弾！準備がまだ！って人は先に準備しましょう！こっちのページを参照してね！ こちらのサイトのようなところへ行けば、EA自体は購入が可能です。 前回はロットサイズを計算する関数を準備して、それを画面に表示させました。今回は無駄な…]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="463" src="https://fp-shima.ne.jp/wp-content/uploads/2024/08/rakutenmt4-1024x463.png" alt="" class="wp-image-3710" srcset="https://fp-shima.ne.jp/wp-content/uploads/2024/08/rakutenmt4-1024x463.png 1024w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/rakutenmt4-300x136.png 300w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/rakutenmt4-150x68.png 150w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/rakutenmt4-768x347.png 768w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/rakutenmt4-1536x695.png 1536w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/rakutenmt4.png 1859w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">EA自作企画第5弾！準備がまだ！って人は先に準備しましょう！こっちの<a href="https://fp-shima.ne.jp/2024/08/24/ea1/">ページを参照</a>してね！</p>



<p class="wp-block-paragraph">こちらのサイトのようなところへ行けば、EA自体は購入が可能です。</p>



<a href="https://www.gogojungle.co.jp/re/YvufDmBmZnPW7wZ" rel="nofollow"><img decoding="async" src="https://www.gogojungle.co.jp/img/affiliates/1040/1" alt="投資家の祭典 GogoJungle AWARD 2023" width="728px" height="90px"></a><img loading="lazy" decoding="async" class="ext-content" style="display: block;" border="0" width="1" height="1" src="https://www.gogojungle.co.jp/re/img/YvufDmBmZnPW7wZ"/>



<p class="wp-block-paragraph"><a href="https://fp-shima.ne.jp/2024/08/24/ea4/">前回</a>はロットサイズを計算する関数を準備して、それを画面に表示させました。今回は無駄なエントリーを減らすために、自分が持っているポジションからエントリーしてよいかどうかを判定します！</p>



<h2 class="wp-block-heading">目標とするEAに近づけたい…</h2>



<div class="wp-block-dvaux-frame sc_frame_wrap inframe"><div class="sc_frame_title inframe" style="background-color:#70b8f1">自作EAの条件</div><div class="sc_frame" style="background-color:#fff;border-color:#70b8f1">
<p class="wp-block-paragraph">損切しない！</p>



<p class="wp-block-paragraph">スワップが増える方向にだけエントリー</p>



<p class="wp-block-paragraph">似たようなところでエントリーしない！</p>



<p class="wp-block-paragraph">最大ポジション数を取った時にレバレッジ10倍を超えない！</p>
</div></div>



<p class="wp-block-paragraph">今回は似たようなところでエントリーしない！をやってみます！前回、externでzoneってのを50に設定していました。アレが意味するところは自分が今持っているポジションに対して、エントリーしたところの周り50Pipsではエントリーしないようにしたいという思いで書いてます。ただ、通貨ペアによっては50pips動くのに何日もかかるようなものもあれば、毎日のように動くものもあるので、自分で設定できるようにしています。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>#property copyright &quot;Copyright 2025, FPshima&quot;
#property link      &quot;https://www.mql5.com&quot;
#property version   &quot;1.00&quot;
#property strict

extern bool LongOn = true;//ロングを許可
extern bool ShortOn = false;//ショートを許可

extern int zone = 50;//エントリー不可範囲
extern int maxPosition = 4;//最大ポジション数
extern double risk = 10;//取りうる最大リスク

double calculateLotSize()
{
   double accountBalance = AccountBalance();
   double totalRiskAmount = accountBalance * risk/100;
   double eachPositionRisk = totalRiskAmount/maxPosition;
   double minLot = MarketInfo(NULL,MODE_MINLOT);
   double marginRequire = MarketInfo(NULL,MODE_MARGINREQUIRED)*minLot;
   double lotSize = (eachPositionRisk / marginRequire)*minLot;
   if(lotSize &lt;= minLot)
   {
      lotSize = minLot;
   }
   if(lotSize &lt;= 20.0)
   {
     lotSize = NormalizeDouble(lotSize,2);
   }
   if(lotSize &gt; 20.0)
   {
      lotSize = 20.0;
   }
   return lotSize;
}

bool EntryJudge(int tradeType)//　自作関数を設定　引数に整数型をいれて答えはboolが返す
{
   double zonePips = zone *Point*10;//Pointはその通貨ペアの最小単位一般に0.1Pips
   int currentPositions = 0;//最大ポジション数を超えないようにポジションを数える元
   
   for(int i = 0 ; i &lt; OrdersTotal(); i++)//iを整数として、OrdersTotal()未満でループ
   {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))//i番目のポジションを選択
      {
         currentPositions++;//ポジションがあったらポジション数を増加
         if(OrderType() == tradeType && MathAbs(OrderOpenPrice()-Ask) &lt;= zonePips && OrderType() == OP_BUY)
         {
            return false;//　if()内の条件に合ってたらfalseを返す
         }
         
         if(OrderType() == tradeType && MathAbs(OrderOpenPrice()-Bid) &lt;= zonePips && OrderType() == OP_SELL)
         {
            return false;//Sellバージョン
         }
      }
   }
   if(currentPositions &lt; maxPosition)//for文が終わった後のポジション数がMaxposition以下なら
   {
      return true;//trueを返す
   }else{
   
      return false;//違ったらfalseを返す
   }
}
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---

   double tradeLot = calculateLotSize();
   Comment(&quot;lotSize&quot;,tradeLot,&quot;  Zonejudge  &quot; , EntryJudge(OP_BUY));//EntryJudgeがtrueかfalseか表示
   if(EntryJudge(OP_BUY))
   {
     OrderSend(NULL,OP_BUY,tradeLot,Ask,5,0,0,&quot;Long&quot;,0,0,clrRed);//EntryJudgeがtrueならLong
   }
   
  }
//+------------------------------------------------------------------+</code></pre></div>



<p class="wp-block-paragraph">さて、今回はエントリー判断をポジション数と、ゾーンにいるかどうかだけで判断しています。</p>



<p class="wp-block-paragraph">具体的に見ていきましょう</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>

bool EntryJudge(int tradeType)　//　自作関数を設定　引数に整数型をいれて答えはboolが返す
{
   double zonePips = zone *Point*10;　//Pointはその通貨ペアの最小単位一般に0.1Pips
   int currentPositions = 0;　//最大ポジション数を超えないようにポジションを数える元
   
   for(int i = 0 ; i &lt; OrdersTotal(); i++)　//iを整数として、OrdersTotal()未満でループ
   {
      if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))　//i番目のポジションを選択
      {
         currentPositions++;//ポジションがあったらポジション数を増加
         if(OrderType() == tradeType && MathAbs(OrderOpenPrice()-Ask) &lt;= zonePips && OrderType() == OP_BUY)
         {
            return false;//　if()内の条件に合ってたらfalseを返す
         }
         
         if(OrderType() == tradeType && MathAbs(OrderOpenPrice()-Bid) &lt;= zonePips && OrderType() == OP_SELL)
         {
            return false;//Sellバージョン
         }
      }
   }
   if(currentPositions &lt; maxPosition)//for文が終わった後のポジション数がMaxposition以下なら
   {
      return true;//trueを返す
   }else{
   
      return false;//違ったらfalseを返す
   }
}
</code></pre></div>



<p class="wp-block-paragraph">boolでEntryJudge()という関数を定義しました。この際、()にint　tradeTypeとしたので、整数を引数として取る必要があります。boolで宣言したので、returnはtrueかfalseですね。</p>



<p class="wp-block-paragraph">ローカル変数としてzonePipsをdoubleで宣言。externで設定できるzoneに、MQL変数のPointを使用。Pointはその通貨ペアの最小単位を返します。通常0.1Pipsなので10倍してPipsに変換しました。したがって、zoneで設定したpipsがどの程度の値動きか判定されます。</p>



<p class="wp-block-paragraph">currentPositionを整数intで宣言しました。ポジション数は少数を取ったりしないので、整数でOK。この後のfor文で数を数えたいので、初期化として0を格納。</p>



<p class="wp-block-paragraph">for文です、整数でiを宣言し、OrdersTotal()でポジションの数を取得。この数になるまでiを増やしていきます。(OrdersTotal()だけでもポジション数を知ることが出来ますが、Long、Shortを分けられません）</p>



<p class="wp-block-paragraph">ＯrdersＳelect()は現在のポジションのi番目を決定します。この際気を付けたいのは、1つ目のポジションは0番であることです。なので、iが０から始まっています。なおポジション0の時はOrdersTotal（）が0なので動きません。で、ポジションがあったらcurrentPositionを++　このプラスプラスは1足すという事。+=１と書いたり、currentPosition＝currentPositon+1とか書いたりもします。</p>



<p class="wp-block-paragraph">if()内で条件判定</p>



<p class="wp-block-paragraph">OrderType() == tradeType　「==」は同じときという意味で、OrderType()はMQL関数でどんなトレードか（OP_BUYなど）を返します。また、tradeTypeはこの関数の引数です。ここでは、tradeTypeがOP_BUYかOP_SELLが入ることを想定しています。 </p>



<p class="wp-block-paragraph">&amp;&amp; MathAbs(OrderOpenPrice()-Ask) &lt;= zonePips 　「&amp;&amp;」は他の条件とand条件で繋げています。MathAbs()はカッコ内の絶対値を返します。ここではOrderOpenPrice()でi番目のポジションをとった価格を調べ、現在のロング時の価格であるAskと比較し、差の絶対値がzonePips内にあるかどうかを確認しています。</p>



<p class="wp-block-paragraph">&amp;&amp; OrderType() == OP_BUY)　最後にこのトレードタイプがOP_BUYかどうかを確認しています。</p>



<p class="wp-block-paragraph">すぐ下のif文は、上述の論理式のSELLバージョンです。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>  if(currentPositions &lt; maxPosition)//for文が終わった後のポジション数がMaxposition以下なら
   {
      return true;//trueを返す
   }else{
   
      return false;//違ったらfalseを返す
   }</code></pre></div>



<p class="wp-block-paragraph">ここでは、さっき数えたcurrentPositionsがextern設定したmaxPositionより小さいかを調べています。小さくなかったらfalseが返ってきます。</p>



<p class="wp-block-paragraph">OnTickの中も見てみましょう</p>



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

   double tradeLot = calculateLotSize();
   Comment(&quot;lotSize&quot;,tradeLot,&quot;  Zonejudge  &quot; , EntryJudge(OP_BUY));//EntryJudgeがtrueかfalseか表示
   if(EntryJudge(OP_BUY))
   {
     OrderSend(NULL,OP_BUY,tradeLot,Ask,5,0,0,&quot;Long&quot;,0,0,clrRed);//EntryJudgeがtrueならLong
   }
   
  }
//+------------------------------------------------------------------+</code></pre></div>



<p class="wp-block-paragraph">コメントに直接EntryJudge()関数の引数OP_BUYを設定しています。また、if文でEntryJudgeがtrueだったら(trueの時は==で書かなくても良い。もちろん==trueとしても良い）OrderSend()関数でOP_BUYしています。OrderSend()関数の引数は（通貨ペア、売買の方法、エントリー価格、スリッページ、損切、利確、”コメント”、マジックナンバー、有効期間、色）となっています。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="294" src="https://fp-shima.ne.jp/wp-content/uploads/2024/08/ea2-1024x294.png" alt="" class="wp-image-3740" srcset="https://fp-shima.ne.jp/wp-content/uploads/2024/08/ea2-1024x294.png 1024w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/ea2-300x86.png 300w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/ea2-150x43.png 150w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/ea2-768x220.png 768w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/ea2.png 1373w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">2ポジション持っていて、1つ目と2つ目のポジションの間隔があいていますね！で、今の値はzone内にいるのでfalseでトレードできません！</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="246" src="https://fp-shima.ne.jp/wp-content/uploads/2024/08/ea3-1024x246.png" alt="" class="wp-image-3741" srcset="https://fp-shima.ne.jp/wp-content/uploads/2024/08/ea3-1024x246.png 1024w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/ea3-300x72.png 300w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/ea3-150x36.png 150w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/ea3-768x185.png 768w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/ea3-1536x370.png 1536w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/ea3.png 1679w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">MAXPOSITONの4つとったので、この後はず～っとfalseでエントリーされません！</p>



<p class="wp-block-paragraph">これで、ポジションをとるコードはかけましたね！<a href="https://fp-shima.ne.jp/2025/05/07/ea6/">次は</a>LongOnとの対応を見ていきます！</p>



<a href="https://px.a8.net/svt/ejp?a8mat=3T0G8I+D15NSA+48D0+6AJV5" rel="nofollow">
<img loading="lazy" decoding="async" border="0" width="728" height="90" alt="" src="https://www21.a8.net/svt/bgt?aid=230128434788&wid=004&eno=01&mid=s00000019746001057000&mc=1"></a>
<img loading="lazy" decoding="async" border="0" width="1" height="1" src="https://www12.a8.net/0.gif?a8mat=3T0G8I+D15NSA+48D0+6AJV5" alt=""><a href="https://www.tcs-asp.net/alink?AC=C100628&LC=RSEC2&SQ=0&isq=204"><img decoding="async" src="https://img.tcs-asp.net/imagesender?ac=C100628&lc=RSEC2&isq=204&psq=0" border="0" alt="楽天証券（FX）"></a>



<h2 class="wp-block-heading">おすすめFXアイテム</h2>



<p class="wp-block-paragraph">過去検証や分析はMT4かFT4、Trading viewがおすすめです。</p>



<p class="wp-block-paragraph">無料が良い人はMT4で、MT4を使わせてくれる口座を使用すると良いです。おすすめはFXTF</p>



<p class="wp-block-paragraph">ガチで過去検証をやりたい人はFT4、<a href="https://h.accesstrade.net/sp/cc?rk=0100kxwf00j59w"></a></p>



<p class="wp-block-paragraph">チャート分析に毎月課金してもいいよって人はTrading viewがおすすめです。無料もあります</p>



<a href="https://px.a8.net/svt/ejp?a8mat=3T0G8I+D15NSA+48D0+6AC5D" rel="nofollow">
<img loading="lazy" decoding="async" border="0" width="728" height="90" alt="" src="https://www28.a8.net/svt/bgt?aid=230128434788&wid=004&eno=01&mid=s00000019746001056000&mc=1"></a>
<img loading="lazy" decoding="async" border="0" width="1" height="1" src="https://www18.a8.net/0.gif?a8mat=3T0G8I+D15NSA+48D0+6AC5D" alt=""> <a rel="nofollow" href="//af.moshimo.com/af/c/click?a_id=1717521&amp;p_id=2360&amp;pc_id=5104&amp;pl_id=30913&amp;guid=ON"><img loading="lazy" decoding="async" width="300" height="250" style="border:none;" src="//image.moshimo.com/af-img/1739/000000030913.jpg"></a><img loading="lazy" decoding="async" width="1" height="1" style="border:none;" src="//i.moshimo.com/af/i/impression?a_id=1717521&amp;p_id=2360&amp;pc_id=5104&amp;pl_id=30913"> <a rel="noopener noreferrer" href="https://tradingview.go2cloud.org/aff_c?offer_id=2&amp;aff_id=20855&amp;file_id=292" target="_blank"><img loading="lazy" decoding="async" width="728" height="90" border="0" src="https://media.go2speed.org/brand/files/tradingview/2/728x90.jpg"></a><img loading="lazy" decoding="async" width="0" height="0" border="0" style="position:absolute;visibility:hidden;" src="https://tradingview.go2cloud.org/aff_i?offer_id=2&amp;file_id=292&amp;aff_id=20855">
]]></content:encoded>
					
					<wfw:commentRss>https://fp-shima.ne.jp/2025/04/30/ea5/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>EAを自作してみよう！ロットサイズを最適化！(4)</title>
		<link>https://fp-shima.ne.jp/2025/04/23/ea4/</link>
					<comments>https://fp-shima.ne.jp/2025/04/23/ea4/#respond</comments>
		
		<dc:creator><![CDATA[FPshima]]></dc:creator>
		<pubDate>Wed, 23 Apr 2025 05:07:16 +0000</pubDate>
				<category><![CDATA[pineスクリプト]]></category>
		<category><![CDATA[チャート分析]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[EA]]></category>
		<category><![CDATA[FX]]></category>
		<category><![CDATA[MQL]]></category>
		<category><![CDATA[MT4]]></category>
		<category><![CDATA[チャート]]></category>
		<guid isPermaLink="false">https://fp-shima.ne.jp/?p=3735</guid>

					<description><![CDATA[EA自作企画第4弾！準備がまだ！って人は先に準備しましょう！こっちのページを参照してね！ こちらのサイトのようなところへ行けば、EA自体は購入が可能です。 前回、ちょっとだけプログラミングしてみましたが、えぇ、ちょっとすぎて何もしてないのと…]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="463" src="https://fp-shima.ne.jp/wp-content/uploads/2024/08/rakutenmt4-1024x463.png" alt="" class="wp-image-3710" srcset="https://fp-shima.ne.jp/wp-content/uploads/2024/08/rakutenmt4-1024x463.png 1024w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/rakutenmt4-300x136.png 300w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/rakutenmt4-150x68.png 150w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/rakutenmt4-768x347.png 768w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/rakutenmt4-1536x695.png 1536w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/rakutenmt4.png 1859w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">EA自作企画第4弾！準備がまだ！って人は先に準備しましょう！こっちの<a href="https://fp-shima.ne.jp/2024/08/24/ea1/">ページを参照</a>してね！</p>



<a rel="noopener noreferrer" href="https://tradingview.go2cloud.org/aff_c?offer_id=2&amp;aff_id=20855&amp;file_id=292" target="_blank"><img loading="lazy" decoding="async" width="728" height="90" border="0" src="https://media.go2speed.org/brand/files/tradingview/2/728x90.jpg"></a><img loading="lazy" decoding="async" width="0" height="0" border="0" style="position:absolute;visibility:hidden;" src="https://tradingview.go2cloud.org/aff_i?offer_id=2&amp;file_id=292&amp;aff_id=20855">



<p class="wp-block-paragraph">こちらのサイトのようなところへ行けば、EA自体は購入が可能です。</p>



<a href="https://www.gogojungle.co.jp/re/YvufDmBmZnPW7wZ" rel="nofollow"><img decoding="async" src="https://www.gogojungle.co.jp/img/affiliates/1040/1" alt="投資家の祭典 GogoJungle AWARD 2023" width="728px" height="90px"></a><img loading="lazy" decoding="async" class="ext-content" style="display: block;" border="0" width="1" height="1" src="https://www.gogojungle.co.jp/re/img/YvufDmBmZnPW7wZ"/>



<p class="wp-block-paragraph"><a href="https://fp-shima.ne.jp/2025/04/16/ea3/">前回</a>、ちょっとだけプログラミングしてみましたが、えぇ、ちょっとすぎて何もしてないのと一緒…ってことで今回はもう少しやってみましょう。</p>



<h2 class="wp-block-heading">目標とするEAに近づけたい…</h2>



<div class="wp-block-dvaux-frame sc_frame_wrap inframe"><div class="sc_frame_title inframe" style="background-color:#70b8f1">自作EAの条件</div><div class="sc_frame" style="background-color:#fff;border-color:#70b8f1">
<p class="wp-block-paragraph">損切しない！</p>



<p class="wp-block-paragraph">スワップが増える方向にだけエントリー</p>



<p class="wp-block-paragraph">似たようなところでエントリーしない！</p>



<p class="wp-block-paragraph">最大ポジション数を取った時にレバレッジ10倍を超えない！</p>
</div></div>



<p class="wp-block-paragraph">こんな感じのEAを設定していましたね。さて、これらを設定できるようにexternしてみましょう。</p>



<p class="wp-block-paragraph">損切しない！ってのは設定しなければいいだけなので、何もしません。</p>



<p class="wp-block-paragraph">スワップが～の項目は基本的にはLong、Shortどちらかに絞れば良いので、前回の、LongOn,ShortOnで解決できました。</p>



<p class="wp-block-paragraph">今回は、似たようなところでエントリーしない！ってのと、最大ポジション数を取った時にレバレッジ10倍を超えない！ってのをexternしてみます。</p>



<p class="wp-block-paragraph">レバレッジ10倍は、関数の都合上10%とすると、Lotが四捨五入して繰り上がっても耐えられるはずです。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>#property copyright &quot;Copyright 2025, FPshima&quot;
#property link      &quot;https://www.mql5.com&quot;
#property version   &quot;1.00&quot;
#property strict

extern bool LongOn = true; //ロングを許可
extern bool ShortOn = false;//ショートを許可

extern int zone = 50;   //エントリー不可範囲　次回やります
extern int maxPosition = 4;  //最大ポジション数
extern double risk = 10; //取りうる最大リスク(%)

double calculateLotSize()　//　1ポジションあたりのロットサイズを計算する関数を宣言
{
   double accountBalance = AccountBalance();//現在残高を取得
   double totalRiskAmount = accountBalance * risk/100;//　残高とリスク(%)から使える最大額を計算
   double eachPositionRisk = totalRiskAmount/maxPosition;//各ポジションで使える額に変換
   double minLot = MarketInfo(NULL,MODE_MINLOT);//この通貨の最小ロットを取得
   double marginRequire = MarketInfo(NULL,MODE_MARGINREQUIRED)*minLot;//最小ロットの証拠金を計算
   double lotSize = (eachPositionRisk / marginRequire)*minLot;//最適ロットサイズを計算

   if(lotSize &lt;= minLot)//場合分け、最小ロットよりも小さいとエラーが出るので
   {
      lotSize = minLot;//そんな時は最小ロットでトレード
   }
   if(lotSize &lt;= 20.0)//大体どの会社もMax20Lotなのでそれまでの値は採用
   {
     lotSize = NormalizeDouble(lotSize,2);//小数点以下2位より先の値があるとエラーが出るので
   }
   if(lotSize &gt; 20.0)
   {
      lotSize = 20.0;//20Lotを超える値が計算されたら上限値トレード
   }
   return lotSize;//calculateLotSize()関数が使われたときに、この値を計算結果とする
}
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---

   double tradeLot = calculateLotSize();//calculateLotSize()関数で計算した値をtradeLotとして格納
   Comment(&quot;lotSize&quot;,tradeLot);//確認用にチャートに出るようにした。
  }
//+------------------------------------------------------------------+</code></pre></div>



<p class="wp-block-paragraph">いきなり少し長いですね…</p>



<p class="wp-block-paragraph">まずはテンプレートよりも外側のグローバル領域で、自作の関数として</p>



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



<p class="wp-block-paragraph">を宣言しました。この関数は｛｝内の計算を行ってreturn　ローカル変数lotSizeを教えてくれます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>   double accountBalance = AccountBalance();　//現在残高を取得
   double totalRiskAmount = accountBalance * risk/100;　//　残高とリスク(%)から使える最大額を計算
   double eachPositionRisk = totalRiskAmount/maxPosition;//各ポジションで使える額に変換
   double minLot = MarketInfo(NULL,MODE_MINLOT);//この通貨の最小ロットを取得
   double marginRequire = MarketInfo(NULL,MODE_MARGINREQUIRED)*minLot;//最小ロットの証拠金を計算
   double lotSize = (eachPositionRisk / marginRequire)*minLot;//最適ロットサイズを計算</code></pre></div>



<p class="wp-block-paragraph">AccountBalance（）関数はMQLにある関数で、現在の残高を教えてくれます。この値をaccountBalanceにdoubleで宣言して格納しています。</p>



<p class="wp-block-paragraph">続いて、externで設定したriskを100で割って%にし、現在の残高にかけることで、トレードに使える最大額を計算します。その後、maxPosition数で割ることで、各ポジションで使える金額を計算しました。</p>



<p class="wp-block-paragraph">minLotにはMQLの関数MarketInfo(NULL,MODE_MINLOT)を使用して、その通貨ペアで選択できる最小ロットを調べています。MarketInfo（）関数は非常に多くの値が取得できますが、とりあえずMODE_MINLOTを入れると最小値がわかります。第1引数にはNULLを使ってますが、すごく便利で、現在使っている通貨ペアを勝手に選んでくれます。</p>



<p class="wp-block-paragraph">続いて、marginRequireではMarketInfo（）関数で必要証拠金を取得し、最小ロットminLotを掛けることで、最小ロットの必要証拠金を算出しています。</p>



<p class="wp-block-paragraph">最後にロットサイズを求めています。各ポジションで使える残高から最小ロットの証拠金で割ることで、何単位の最小ロットの購入できるかを求め、最小ロットをかけて、ロットサイズを計算しています。</p>



<p class="wp-block-paragraph">最後にif文で条件分けをして、最小0.01　最大20.0　それまでの計算結果は、小数点第3位で四捨五入して小数点第2位としています。</p>



<p class="wp-block-paragraph">実際の計算は以下のようになります。</p>



<div class="wp-block-dvaux-frame sc_frame_wrap inline"><div class="sc_frame_title inline" style="background-color:#00f">計算</div><div class="sc_frame" style="background-color:#fff;border-color:#00f">
<p class="wp-block-paragraph">USDJPY　</p>



<p class="wp-block-paragraph">残高　=　10000ドル</p>



<p class="wp-block-paragraph">最小ロット　0.01</p>



<p class="wp-block-paragraph">必要証拠金　4000/Lot</p>



<p class="wp-block-paragraph">accountBalance = AccountBalance()　=10000</p>



<p class="wp-block-paragraph">totalRiskAmount = accountBalance * risk/100　risk=10から　1000</p>



<p class="wp-block-paragraph">eachPositionRisk = totalRiskAmount/maxPosition　maxポジションは4なので　250</p>



<p class="wp-block-paragraph">minLot = MarketInfo(NULL,MODE_MINLOT)　=0.01</p>



<p class="wp-block-paragraph">marginRequire = MarketInfo(NULL,MODE_MARGINREQUIRED)*minLot　１Lotに4000必要なので最小ロットだと40</p>



<p class="wp-block-paragraph">lotSize = (eachPositionRisk / marginRequire)*minLot　250を40で割ると6.25でminLot0.01だからlotSizeは0.06</p>
</div></div>



<p class="wp-block-paragraph">OnTickの中も見てみましょう</p>



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

   double tradeLot = calculateLotSize();//calculateLotSize()関数で計算した値をtradeLotとして格納
   Comment(&quot;lotSize&quot;,tradeLot);//確認用にチャートに出るようにした。
  }
//+------------------------------------------------------------------+</code></pre></div>



<p class="wp-block-paragraph">tradeLot = calculateLotSize()さっき作った関数での計算結果をtradeLotに格納しています。計算が間違っていなければ0.06になっているはずですが、現段階では実際のトレードはされないので、Comment（）で表示させています。</p>



<p class="wp-block-paragraph">()内に,で区切って表示させたいものを格納すると、画面に表示してくれます。ここでは文字列lotSize（””で囲った文字は文字列として認識されます。）の後に、tradeLotが表示される様にしています。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="309" src="https://fp-shima.ne.jp/wp-content/uploads/2025/03/chart-1024x309.png" alt="" class="wp-image-3945" srcset="https://fp-shima.ne.jp/wp-content/uploads/2025/03/chart-1024x309.png 1024w, https://fp-shima.ne.jp/wp-content/uploads/2025/03/chart-300x91.png 300w, https://fp-shima.ne.jp/wp-content/uploads/2025/03/chart-150x45.png 150w, https://fp-shima.ne.jp/wp-content/uploads/2025/03/chart-768x232.png 768w, https://fp-shima.ne.jp/wp-content/uploads/2025/03/chart.png 1302w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">見づらいかもしれませんが、ちゃんと左上にlotSize0.06が表示されていますね！</p>



<p class="wp-block-paragraph">続きはまた<a href="https://fp-shima.ne.jp/2025/04/30/ea5/">次回！</a></p>



<a href="https://px.a8.net/svt/ejp?a8mat=3T0G8I+D15NSA+48D0+6AJV5" rel="nofollow">
<img loading="lazy" decoding="async" border="0" width="728" height="90" alt="" src="https://www21.a8.net/svt/bgt?aid=230128434788&wid=004&eno=01&mid=s00000019746001057000&mc=1"></a>
<img loading="lazy" decoding="async" border="0" width="1" height="1" src="https://www12.a8.net/0.gif?a8mat=3T0G8I+D15NSA+48D0+6AJV5" alt=""><a href="https://www.tcs-asp.net/alink?AC=C100628&LC=RSEC2&SQ=0&isq=204"><img decoding="async" src="https://img.tcs-asp.net/imagesender?ac=C100628&lc=RSEC2&isq=204&psq=0" border="0" alt="楽天証券（FX）"></a>



<h2 class="wp-block-heading">おすすめFXアイテム</h2>



<p class="wp-block-paragraph">過去検証や分析はMT4かFT4、Trading viewがおすすめです。</p>



<p class="wp-block-paragraph">無料が良い人はMT4で、MT4を使わせてくれる口座を使用すると良いです。おすすめはFXTF</p>



<p class="wp-block-paragraph">ガチで過去検証をやりたい人はFT4、<a href="https://h.accesstrade.net/sp/cc?rk=0100kxwf00j59w"></a></p>



<p class="wp-block-paragraph">チャート分析に毎月課金してもいいよって人はTrading viewがおすすめです。無料もあります</p>



<a href="https://px.a8.net/svt/ejp?a8mat=3T0G8I+D15NSA+48D0+6AC5D" rel="nofollow">
<img loading="lazy" decoding="async" border="0" width="728" height="90" alt="" src="https://www28.a8.net/svt/bgt?aid=230128434788&wid=004&eno=01&mid=s00000019746001056000&mc=1"></a>
<img loading="lazy" decoding="async" border="0" width="1" height="1" src="https://www18.a8.net/0.gif?a8mat=3T0G8I+D15NSA+48D0+6AC5D" alt=""> <a rel="nofollow" href="//af.moshimo.com/af/c/click?a_id=1717521&amp;p_id=2360&amp;pc_id=5104&amp;pl_id=30913&amp;guid=ON"><img loading="lazy" decoding="async" width="300" height="250" style="border:none;" src="//image.moshimo.com/af-img/1739/000000030913.jpg"></a><img loading="lazy" decoding="async" width="1" height="1" style="border:none;" src="//i.moshimo.com/af/i/impression?a_id=1717521&amp;p_id=2360&amp;pc_id=5104&amp;pl_id=30913"> <a rel="noopener noreferrer" href="https://tradingview.go2cloud.org/aff_c?offer_id=2&amp;aff_id=20855&amp;file_id=292" target="_blank"><img loading="lazy" decoding="async" width="728" height="90" border="0" src="https://media.go2speed.org/brand/files/tradingview/2/728x90.jpg"></a><img loading="lazy" decoding="async" width="0" height="0" border="0" style="position:absolute;visibility:hidden;" src="https://tradingview.go2cloud.org/aff_i?offer_id=2&amp;file_id=292&amp;aff_id=20855">
]]></content:encoded>
					
					<wfw:commentRss>https://fp-shima.ne.jp/2025/04/23/ea4/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>EAを自作してみよう！作業開始！(3)</title>
		<link>https://fp-shima.ne.jp/2025/04/16/ea3/</link>
					<comments>https://fp-shima.ne.jp/2025/04/16/ea3/#respond</comments>
		
		<dc:creator><![CDATA[FPshima]]></dc:creator>
		<pubDate>Wed, 16 Apr 2025 05:05:21 +0000</pubDate>
				<category><![CDATA[pineスクリプト]]></category>
		<category><![CDATA[チャート分析]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[EA]]></category>
		<category><![CDATA[FX]]></category>
		<category><![CDATA[MQL]]></category>
		<category><![CDATA[MT4]]></category>
		<category><![CDATA[チャート]]></category>
		<guid isPermaLink="false">https://fp-shima.ne.jp/?p=3722</guid>

					<description><![CDATA[EA自作企画第3弾！準備がまだ！って人は先に準備しましょう！こっちのページを参照してね！ こちらのサイトのようなところへ行けば、EA自体は購入が可能です。 今回から、ついに、実際に作業…に入れると良いのですが、プログラミングなんてやったこと…]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="483" src="https://fp-shima.ne.jp/wp-content/uploads/2024/08/offlinechart-1024x483.png" alt="" class="wp-image-3715" srcset="https://fp-shima.ne.jp/wp-content/uploads/2024/08/offlinechart-1024x483.png 1024w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/offlinechart-300x141.png 300w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/offlinechart-150x71.png 150w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/offlinechart-768x362.png 768w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/offlinechart-1536x724.png 1536w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/offlinechart.png 1678w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">EA自作企画第3弾！準備がまだ！って人は先に準備しましょう！こっちの<a href="https://fp-shima.ne.jp/2024/08/24/ea1/">ページを参照</a>してね！</p>



<a rel="noopener noreferrer" href="https://tradingview.go2cloud.org/aff_c?offer_id=2&amp;aff_id=20855&amp;file_id=292" target="_blank"><img loading="lazy" decoding="async" width="728" height="90" border="0" src="https://media.go2speed.org/brand/files/tradingview/2/728x90.jpg"></a><img loading="lazy" decoding="async" width="0" height="0" border="0" style="position:absolute;visibility:hidden;" src="https://tradingview.go2cloud.org/aff_i?offer_id=2&amp;file_id=292&amp;aff_id=20855">



<p class="wp-block-paragraph">こちらのサイトのようなところへ行けば、EA自体は購入が可能です。</p>



<a href="https://www.gogojungle.co.jp/re/YvufDmBmZnPW7wZ" rel="nofollow"><img decoding="async" src="https://www.gogojungle.co.jp/img/affiliates/1040/1" alt="投資家の祭典 GogoJungle AWARD 2023" width="728px" height="90px"></a><img loading="lazy" decoding="async" class="ext-content" style="display: block;" border="0" width="1" height="1" src="https://www.gogojungle.co.jp/re/img/YvufDmBmZnPW7wZ"/>



<p class="wp-block-paragraph">今回から、ついに、実際に作業…に入れると良いのですが、プログラミングなんてやったことないよ…って人も多くいるでしょう。一応、今は義務教育に組み込まれるって話ではありますが、2025年時点でこのサイト見ている人は、プログラミングなんて～って世代かと思います。</p>



<h2 class="wp-block-heading has-text-align-center" id="複数インジケーターの価値">プログラミング？</h2>



<p class="wp-block-paragraph"><span class="sc_marker" style="background: linear-gradient(transparent 50%, #ffff66 50%);">コンピューターに命令して実行してもらう</span>。ってことなんだと思います。ただ、その為の命令の文章に、色々な作法があって、また、プログラミング言語によっても作法が違ったりと、なかなかとっつきにくい部分でもあります。</p>



<p class="wp-block-paragraph">FP嶋も正直プログラミングはまともに習ったことありません！</p>



<p class="wp-block-paragraph">ただ、結局のところ、プログラミングって、順番に実行されるだけなので、その並びと、使える関数、変数、記号、書き方がちょっと違うってだけ！慣れればどんな言語も扱えます！（たぶん）</p>



<p class="wp-block-paragraph">MT4のEAに使われるプログラミング言語はMQLといいます。恐らくC言語系列…だと思いますが、良くわかりません。まぁ特に気にすることではありませんが、CとかC++とかやったことがある人は、わかりやすいみたいです。MT4にはMQL4、MT5にはMQL5が使われます。</p>



<h2 class="wp-block-heading">MQL4の使い方</h2>



<p class="wp-block-paragraph">MT4に標準的についています。MT4が無いって人は、まずは<a href="https://fp-shima.ne.jp/2024/08/24/ea1/">準備編</a>へ！</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="363" src="https://fp-shima.ne.jp/wp-content/uploads/2024/08/mql4-1024x363.png" alt="" class="wp-image-3723" srcset="https://fp-shima.ne.jp/wp-content/uploads/2024/08/mql4-1024x363.png 1024w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/mql4-300x106.png 300w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/mql4-150x53.png 150w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/mql4-768x273.png 768w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/mql4.png 1223w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">上の図の赤い丸のところをクリックすると…</p>



<p class="wp-block-paragraph">↓</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="555" src="https://fp-shima.ne.jp/wp-content/uploads/2024/08/metaedita-1024x555.png" alt="" class="wp-image-3724" srcset="https://fp-shima.ne.jp/wp-content/uploads/2024/08/metaedita-1024x555.png 1024w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/metaedita-300x163.png 300w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/metaedita-150x81.png 150w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/metaedita-768x416.png 768w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/metaedita-1536x832.png 1536w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/metaedita.png 1920w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">こんな感じの画面になるはず！</p>



<p class="wp-block-paragraph">ここで、命令文を書いていって、実際に動かせる形に「コンパイル」してやればEAの完成です！</p>



<p class="wp-block-paragraph">コンパイルってなんやねん！？って思うかもしれませんが、コンピューターがわかるように翻訳することだと思ってください。彼らは基本的には電気的なon・offだけで動いてるので、その形に変えています（きっと）</p>



<p class="wp-block-paragraph">では、実際に触ってみましょう。</p>



<h2 class="wp-block-heading">EAを作るなら…</h2>



<p class="wp-block-paragraph">新規作成をクリックします。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="606" height="457" src="https://fp-shima.ne.jp/wp-content/uploads/2024/08/mql4new.png" alt="" class="wp-image-3725" srcset="https://fp-shima.ne.jp/wp-content/uploads/2024/08/mql4new.png 606w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/mql4new-300x226.png 300w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/mql4new-150x113.png 150w" sizes="auto, (max-width: 606px) 100vw, 606px" /></figure>



<p class="wp-block-paragraph">こんな画像が出てくるので、エキスパートアドバイザ（テンプレート）を選択して、次へ</p>



<p class="wp-block-paragraph">そうすると、EAの名前を求められますので、お好きな名前を付けましょう。</p>



<p class="wp-block-paragraph">ここでは、OnewayTraderとします。片方にしか入らない予定なので。</p>



<p class="wp-block-paragraph">著作者は自分の名前がわかるようにしておけば良いと思います。もちろん本名でなくても良いですよ。</p>



<p class="wp-block-paragraph">それ以外には特に操作無く、次へを選択して、完了で大丈夫です。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>//+------------------------------------------------------------------+
//|                                                 OnewayTrader.mq4 |　名前
//|                                          Copyright 2025, FPshima |　著作者
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright &quot;Copyright 2025, FPshima&quot;　著作者
#property link      &quot;https://www.mql5.com&quot;
#property version   &quot;1.00&quot;
#property strict
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()　　　　　　　　　　　　　　　　　　
  {
//---
   　　　　　　　　　　　　　　　　　　　　　１　設置した時にだけ動くプログラム
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   　　　　　　　　　　　　　　　　　　　２　　設置を終了した時にだけ動くプログラム
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   　　　　　　　　　　　　　　　　　　　３　　レートが動いた時にだけ動くプログラム
  }
//+------------------------------------------------------------------+
</code></pre></div>



<p class="wp-block-paragraph">そうすると、上記のようなコードが出てきます。多少違うと思いますが、それは、EAの名称や、著作者名。1，2，3の注釈だと思います。注釈に関してはこちらで説明用に入れたものなので…</p>



<p class="wp-block-paragraph">これはテンプレートなので、EAを作るうえで、必要な関数があらかじめ3つおいてあるというだけです。</p>



<p class="wp-block-paragraph"></p>



<a href="https://px.a8.net/svt/ejp?a8mat=3T0G8I+D15NSA+48D0+6AJV5" rel="nofollow">
<img loading="lazy" decoding="async" border="0" width="728" height="90" alt="" src="https://www21.a8.net/svt/bgt?aid=230128434788&wid=004&eno=01&mid=s00000019746001057000&mc=1"></a>
<img loading="lazy" decoding="async" border="0" width="1" height="1" src="https://www12.a8.net/0.gif?a8mat=3T0G8I+D15NSA+48D0+6AJV5" alt=""><a href="https://www.tcs-asp.net/alink?AC=C100628&LC=RSEC2&SQ=0&isq=204"><img decoding="async" src="https://img.tcs-asp.net/imagesender?ac=C100628&lc=RSEC2&isq=204&psq=0" border="0" alt="楽天証券（FX）"></a>



<h2 class="wp-block-heading">プログラミングをしてみよう！</h2>



<p class="wp-block-paragraph">っと、その前に基本的な話。</p>



<p class="wp-block-paragraph">プログラミングは上から下方向に進んでいきます。で、ずっと実行されます。ぐるぐると回っていると考えてもらうと良いかもしれません。</p>



<p class="wp-block-paragraph">さらに、その中に色々と分岐があって、<span class="sc_marker" style="background: linear-gradient(transparent 50%, #ffff66 50%);">こんな時はこの操作、それとは違う時はあっちの操作</span>ってのをどんどん実行していきます。</p>



<p class="wp-block-paragraph">OnInit（）、OnDeinit（）、OnTick（）ってのはそれぞれ、「最初」、「最後」、「動いてるとき」って意味です。したがって、トレードを行ってもらうプログラムはOnTick()の｛｝内に書いていきます。</p>



<p class="wp-block-paragraph">#propertyはEA上気にする必要は無いので、無視しましょう。そういうもんだと思ってください。</p>



<p class="wp-block-paragraph">で、特に問題が無ければ、OnInit()、OnDeinit()にも記載は必要ないです。</p>



<p class="wp-block-paragraph">それ以外に必要なのは、宣言ということ...まぁFP嶋も良くわからないので、この単語が正しく使えているのか定かではありません！</p>



<p class="wp-block-paragraph">で、使うプログラムはすべて宣言する必要があるのですが、その場で宣言しても良いし、EA全体に影響を与える位置で宣言しても良いです。</p>



<p class="wp-block-paragraph">EA全体に影響を与えるのは「グローバル」、個々のプログラミング内でだけ使われるものは「ローカル」と呼びます。</p>



<h2 class="wp-block-heading">グローバル？ローカル？</h2>



<p class="wp-block-paragraph">上から順番に実行されると言いましたが、グローバルにいるプログラムはずっと動いてます。すなわち、ローカル内ではどこでも使えます。一方、ローカル内で使われた単語は、グローバルでは使えません。</p>



<p class="wp-block-paragraph">で、宣言するときは、その言葉が一体どんなものなのか。ってのを先に教えてあげる必要があります。代表的なものを見てみましょう。コンピューターに分かってもらうためのお約束です。</p>



<div class="wp-block-dvaux-frame sc_frame_wrap inline"><div class="sc_frame_title inline" style="background-color:#ff8178">宣言するときのお約束</div><div class="sc_frame" style="background-color:#fff;border-color:#ff8178">
<p class="wp-block-paragraph">int　○○　　→　○○は整数です</p>



<p class="wp-block-paragraph">double　△△　→　△△は小数点以下も持っています</p>



<p class="wp-block-paragraph">bool　□□　→　□□はtrueかfalseです</p>



<p class="wp-block-paragraph">string　●●　→　●●は文字列です</p>



<p class="wp-block-paragraph">datetime　▲▲　→　▲▲は時間を示しています</p>



<p class="wp-block-paragraph">void　××　→　××っていってるけど見えません！</p>
</div></div>



<p class="wp-block-paragraph">ここらへんは、実際にプログラミングしていかないとわからないかもしれません。ちょっと戻って考えてみると</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>
int OnInit()　　　　　　　　　　　　　　　　　　
  {
//---
   　　　　　　　　　　　　　　　　　　　　　１　設置した時にだけ動くプログラム
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---
   　　　　　　　　　　　　　　　　　　　２　　設置を終了した時にだけ動くプログラム
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   　　　　　　　　　　　　　　　　　　　３　　レートが動いた時にだけ動くプログラム
  }
//+------------------------------------------------------------------+
</code></pre></div>



<p class="wp-block-paragraph">OnInit()だけ、intで宣言されて、return()がついていますよね？つまり、intで宣言しているので、returnとしてINIT_SUCCEEDEDってのが出てきます。で、このINIT_SUCCEEDEDてやつは整数なんです。ほんと、整数には見えないんですけど、MQL的には整数として存在しています。</p>



<p class="wp-block-paragraph">実は、プログラミング言語ってやつは、前もって、変数や関数が宣言されていて、それをどこで使うか？ってものなんです。したがって、既に宣言されている単語はその中身の形状がintならintなんです。見えないんですけどね。したがって、INIT_SUCCEEDEDはなんかの整数が割り当てられています。恐らく0か1でしょう。他にもたくさん0，1，2、と整数がふられた単語があります。</p>



<p class="wp-block-paragraph">ここでテンプレートとして宣言された単語たちはお尻に()がついていますね。これは、関数であることを意味しています。つまり、ちょっとしたプログラムであるという事。OnTick（）はレートが動くたびに｛｝内を実行してねっていうプログラムなわけです。</p>



<p class="wp-block-paragraph">何となくわかりましたか？</p>



<h2 class="wp-block-heading">宣言する前につけるものもある</h2>



<p class="wp-block-paragraph">MT4をいじるとパラメーターを設定しないといけないインジケーターやスクリプトがあることに気が付くと思います。これらの設定をしたり、単語として宣言したものにさらなる情報の付加をすることがあります。いくつかあるのですが、本EAで使いそうなのは</p>



<p class="wp-block-paragraph">「<strong>extern</strong>」</p>



<p class="wp-block-paragraph">　この子にはだいぶお世話になると思います。externはパラメーターとして、EAを使う時に設定が出来るようにするお約束です。したがって、この直後に宣言される単語は、EAの設定として値を変化させることが出来るようになります。</p>



<h2 class="wp-block-heading">ちょっとだけプログラミングしてみよう！</h2>



<p class="wp-block-paragraph">という事で、さっそく、やってみましょう！</p>



<div class="wp-block-dvaux-frame sc_frame_wrap inframe"><div class="sc_frame_title inframe" style="background-color:#70b8f1">自作EAの条件</div><div class="sc_frame" style="background-color:#fff;border-color:#70b8f1">
<p class="wp-block-paragraph">損切しない！</p>



<p class="wp-block-paragraph">スワップが増える方向にだけエントリー</p>



<p class="wp-block-paragraph">似たようなところでエントリーしない！</p>



<p class="wp-block-paragraph">最大ポジション数を取った時にレバレッジ10倍を超えない！</p>
</div></div>



<p class="wp-block-paragraph">今回作ろうとしているEAは上記のような条件を持っていましたね。</p>



<p class="wp-block-paragraph">この部分の一部を作ってみます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-plain"><code>//+------------------------------------------------------------------+
//|                                                 OnewayTrader.mq4 |
//|                                          Copyright 2025, FPshima |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright &quot;Copyright 2025, FPshima&quot;
#property link      &quot;https://www.mql5.com&quot;
#property version   &quot;1.00&quot;
#property strict

extern bool LongOn = true; //ロングを許可
extern bool ShortOn = false;//ショートを許可
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()

~~~~</code></pre></div>



<p class="wp-block-paragraph">LongONとShortONってのをboolで宣言しました。MQLでのプログラミングは、一行ごとに終わる場合は、最後に「;（セミコロン）」を忘れないようにしましょう。つけないと、改行しただけで、プログラムが続いていると勘違いされます。すなわち、うまくいかなくなります。</p>



<p class="wp-block-paragraph">boolは「true」と「false」です。externとしましたので、LongOnとShortOnがEAの設定としていじることが出来るようになりました。ただ、まだ設定しただけなので、これだけでロングのみになったりはしません。今後作っていきますが、このLongOnがtrueの時だけ動くようにしたりしていけば、ロングだけ~ってEAを作ることが出来ます。</p>



<p class="wp-block-paragraph">では、実際に動くかどうか試したいので、MetaEditorの上部にあるコンパイルってボタンをクリックしてみましょう。特にエラーが出なければ大丈夫です。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="236" src="https://fp-shima.ne.jp/wp-content/uploads/2024/08/strategytester-1024x236.png" alt="" class="wp-image-3727" srcset="https://fp-shima.ne.jp/wp-content/uploads/2024/08/strategytester-1024x236.png 1024w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/strategytester-300x69.png 300w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/strategytester-150x35.png 150w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/strategytester-768x177.png 768w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/strategytester.png 1291w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">その後、ＭＴ４で赤丸のところを、ポチっとすると下の方になんか出るんですけど、隠れているので、ターミナルってのとテスターって境目をクリックして引っ張ると大きくなります。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="348" src="https://fp-shima.ne.jp/wp-content/uploads/2024/08/strategytesterlower-1-1024x348.png" alt="" class="wp-image-3729" srcset="https://fp-shima.ne.jp/wp-content/uploads/2024/08/strategytesterlower-1-1024x348.png 1024w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/strategytesterlower-1-300x102.png 300w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/strategytesterlower-1-150x51.png 150w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/strategytesterlower-1-768x261.png 768w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/strategytesterlower-1-1536x522.png 1536w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/strategytesterlower-1.png 1921w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">EA選択プルダウンで今作ったEAを選択</p>



<p class="wp-block-paragraph">その後EA設定を押してみると…</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="651" height="337" src="https://fp-shima.ne.jp/wp-content/uploads/2024/08/onewaytradersettei.png" alt="" class="wp-image-3730" srcset="https://fp-shima.ne.jp/wp-content/uploads/2024/08/onewaytradersettei.png 651w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/onewaytradersettei-300x155.png 300w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/onewaytradersettei-150x78.png 150w" sizes="auto, (max-width: 651px) 100vw, 651px" /></figure>



<p class="wp-block-paragraph">設定できるようになっていますね！<a href="https://fp-shima.ne.jp/2025/04/23/ea4/">次回</a>はもう少しプログラミングをすすめます！</p>



<h2 class="wp-block-heading">おすすめFXアイテム</h2>



<p class="wp-block-paragraph">過去検証や分析はMT4かFT4、Trading viewがおすすめです。</p>



<p class="wp-block-paragraph">無料が良い人はMT4で、MT4を使わせてくれる口座を使用すると良いです。おすすめはFXTF</p>



<p class="wp-block-paragraph">ガチで過去検証をやりたい人はFT4、<a href="https://h.accesstrade.net/sp/cc?rk=0100kxwf00j59w"></a></p>



<p class="wp-block-paragraph">チャート分析に毎月課金してもいいよって人はTrading viewがおすすめです。無料もあります</p>



<a href="https://px.a8.net/svt/ejp?a8mat=3T0G8I+D15NSA+48D0+6AC5D" rel="nofollow">
<img loading="lazy" decoding="async" border="0" width="728" height="90" alt="" src="https://www28.a8.net/svt/bgt?aid=230128434788&wid=004&eno=01&mid=s00000019746001056000&mc=1"></a>
<img loading="lazy" decoding="async" border="0" width="1" height="1" src="https://www18.a8.net/0.gif?a8mat=3T0G8I+D15NSA+48D0+6AC5D" alt=""> <a rel="nofollow" href="//af.moshimo.com/af/c/click?a_id=1717521&amp;p_id=2360&amp;pc_id=5104&amp;pl_id=30913&amp;guid=ON"><img loading="lazy" decoding="async" width="300" height="250" style="border:none;" src="//image.moshimo.com/af-img/1739/000000030913.jpg"></a><img loading="lazy" decoding="async" width="1" height="1" style="border:none;" src="//i.moshimo.com/af/i/impression?a_id=1717521&amp;p_id=2360&amp;pc_id=5104&amp;pl_id=30913"> <a rel="noopener noreferrer" href="https://tradingview.go2cloud.org/aff_c?offer_id=2&amp;aff_id=20855&amp;file_id=292" target="_blank"><img loading="lazy" decoding="async" width="728" height="90" border="0" src="https://media.go2speed.org/brand/files/tradingview/2/728x90.jpg"></a><img loading="lazy" decoding="async" width="0" height="0" border="0" style="position:absolute;visibility:hidden;" src="https://tradingview.go2cloud.org/aff_i?offer_id=2&amp;file_id=292&amp;aff_id=20855">
]]></content:encoded>
					
					<wfw:commentRss>https://fp-shima.ne.jp/2025/04/16/ea3/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>EAを自作してみよう！どんなEAが良い&#x2049;(2)</title>
		<link>https://fp-shima.ne.jp/2025/04/09/ea2/</link>
					<comments>https://fp-shima.ne.jp/2025/04/09/ea2/#respond</comments>
		
		<dc:creator><![CDATA[FPshima]]></dc:creator>
		<pubDate>Wed, 09 Apr 2025 05:01:56 +0000</pubDate>
				<category><![CDATA[pineスクリプト]]></category>
		<category><![CDATA[チャート分析]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[EA]]></category>
		<category><![CDATA[FX]]></category>
		<category><![CDATA[MT4]]></category>
		<category><![CDATA[チャート]]></category>
		<guid isPermaLink="false">https://fp-shima.ne.jp/?p=3717</guid>

					<description><![CDATA[EA自作企画第2弾！準備がまだ！って人は先に準備しましょう！こっちのページを参照してね！ ちなみにEAに関しては、他の記事でも触れています。売られてもいますが、高額で、元を取るまでにかかる時間を考えると、結構な元手が無いと大変です。 なお、…]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="483" src="https://fp-shima.ne.jp/wp-content/uploads/2024/08/offlinechart-1024x483.png" alt="" class="wp-image-3715" srcset="https://fp-shima.ne.jp/wp-content/uploads/2024/08/offlinechart-1024x483.png 1024w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/offlinechart-300x141.png 300w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/offlinechart-150x71.png 150w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/offlinechart-768x362.png 768w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/offlinechart-1536x724.png 1536w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/offlinechart.png 1678w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">EA自作企画第2弾！準備がまだ！って人は先に準備しましょう！こっちの<a href="https://fp-shima.ne.jp/2024/08/24/ea1/">ページを参照</a>してね！</p>



<a rel="noopener noreferrer" href="https://tradingview.go2cloud.org/aff_c?offer_id=2&amp;aff_id=20855&amp;file_id=292" target="_blank"><img loading="lazy" decoding="async" width="728" height="90" border="0" src="https://media.go2speed.org/brand/files/tradingview/2/728x90.jpg"></a><img loading="lazy" decoding="async" width="0" height="0" border="0" style="position:absolute;visibility:hidden;" src="https://tradingview.go2cloud.org/aff_i?offer_id=2&amp;file_id=292&amp;aff_id=20855">



<p class="wp-block-paragraph">ちなみに<a href="https://fp-shima.ne.jp/2020/01/09/fx-ea/" data-type="post" data-id="1204">EA</a>に関しては、他の記事でも触れています。売られてもいますが、高額で、元を取るまでにかかる時間を考えると、結構な元手が無いと大変です。</p>



<p class="wp-block-paragraph">なお、こちらのサイトのようなところへ行けば、EA自体は購入が可能です。</p>



<a href="https://www.gogojungle.co.jp/re/YvufDmBmZnPW7wZ" rel="nofollow"><img decoding="async" src="https://www.gogojungle.co.jp/img/affiliates/1040/1" alt="投資家の祭典 GogoJungle AWARD 2023" width="728px" height="90px"></a><img loading="lazy" decoding="async" class="ext-content" style="display: block;" border="0" width="1" height="1" src="https://www.gogojungle.co.jp/re/img/YvufDmBmZnPW7wZ"/>



<h2 class="wp-block-heading has-text-align-center" id="複数インジケーターの価値">どんなEAを作ろうか？</h2>



<p class="wp-block-paragraph"><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-light-green-color"><strong>儲かるEAが良い！</strong></mark></p>



<p class="wp-block-paragraph">そうだと思います。まぁそれはそうなんですが、少し具体的に考えてみましょう。</p>



<p class="wp-block-paragraph">他のページでも書いていますが、投資って勝ったり負けたりするし、リスクに対するリワードの比率だの、勝率だの色々考えるべきポイントが沢山あるんですよね。</p>



<p class="wp-block-paragraph">ただ、本サイトのEAは出来るだけ簡単に扱えるものにしたいので、<span class="sc_marker" style="background: linear-gradient(transparent 50%, #ffff66 50%);">損切しない！</span>っていう方針で行こうかと。まぁ普通に考えたら損切しないトレードは悪です。</p>



<p class="wp-block-paragraph">が、相場は行ったり来たりするもんなので、それでも勝てるような設計にしたら良いんじゃないかなーって発想。</p>



<p class="wp-block-paragraph">そこで、以下のような条件にしたいと思います。</p>



<div class="wp-block-dvaux-frame sc_frame_wrap inframe"><div class="sc_frame_title inframe" style="background-color:#70b8f1">自作EAの条件</div><div class="sc_frame" style="background-color:#fff;border-color:#70b8f1">
<p class="wp-block-paragraph">損切しない！</p>



<p class="wp-block-paragraph">スワップが増える方向にだけエントリー</p>



<p class="wp-block-paragraph">似たようなところでエントリーしない！</p>



<p class="wp-block-paragraph">最大ポジション数を取った時にレバレッジ10倍を超えない！</p>
</div></div>



<p class="wp-block-paragraph">さて、EAの条件は決まりました。</p>



<p class="wp-block-paragraph">次は利益の目標について考えます</p>



<h2 class="wp-block-heading">どのくらい儲けたい<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2049.png" alt="⁉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></h2>



<p class="wp-block-paragraph">さて、どのくらい儲けたいですか<img src="https://s.w.org/images/core/emoji/17.0.2/72x72/2049.png" alt="⁉" class="wp-smiley" style="height: 1em; max-height: 1em;" />って聞かれたとき、「<span class="sc_marker" style="background: linear-gradient(transparent 50%, #ffff66 50%);">儲けられるならいくらでも…</span>」ってなりますよね。まぁそれが普通です。</p>



<p class="wp-block-paragraph">ただ、投資となると、それなりに目標設定が必要だと思います。</p>



<p class="wp-block-paragraph">例えば、年利で5%なのか50%なのか、はたまた1年で倍にしたい…って人もいるでしょう。1年で倍はかなりのリスクをとる必要があると思いますが、年利10%位ならまぁ何とかなりそうですよね。</p>



<p class="wp-block-paragraph">目標なので、ここでは年利50%にしてみます！まぁ難しそう！</p>



<p class="wp-block-paragraph">ここで重要なのは、具体的な数字を設定するという事です。なぜかというと、<span class="sc_marker" style="background: linear-gradient(transparent 50%, #ffff66 50%);">EAは自動売買なので、残高に応じて投資額も自動で設定できます</span>。すなわち、複利で増やせるという事。</p>



<p class="wp-block-paragraph">年の目標値は、1回あたりのトレードにすると何％なのか…でトレードの形も変わるってものなのです。</p>



<p class="wp-block-paragraph">ってことで、年利は50%にしてみます！以下に年利と月利の関係について見てみます。</p>



<div class="wp-block-dvaux-frame sc_frame_wrap inline"><div class="sc_frame_title inline" style="background-color:#70b8f1">年利と月利</div><div class="sc_frame" style="background-color:#fff;border-color:#70b8f1">
<div class="wp-block-group is-vertical is-layout-flex wp-container-core-group-is-layout-dc0c0d66 wp-block-group-is-layout-flex">
<p class="wp-block-paragraph">年利　1%　→　月利　0.08%</p>



<p class="wp-block-paragraph">　　　2%　→　　　　0.17%</p>



<p class="wp-block-paragraph">　　　5%　→　　　　0.41%</p>



<p class="wp-block-paragraph">　　10％　→　　　　0.8%</p>



<p class="wp-block-paragraph">　　30%　→　　　　2.21%</p>



<p class="wp-block-paragraph">　　50%　→　　　　3.44%</p>



<p class="wp-block-paragraph">100%（2倍)　→　　　5.95%</p>



<p class="wp-block-paragraph">200%（3倍)　→　　　9.59%</p>
</div>
</div></div>



<p class="wp-block-paragraph">具体的に目標が見えてきましたね！</p>



<h2 class="wp-block-heading">実際どのくらいのトレードかな？</h2>



<p class="wp-block-paragraph">さて、最大でレバレッジ10倍を超えないのがEA設定でした。</p>



<p class="wp-block-paragraph">例として、4ポジション取って、持ち越しになってしまった場合に、レバレッジ10倍を超えないとすると、1ポジションあたり2.5倍です。MT4では1000通貨単位で取引するので、現在の大体150円で計算してみると、</p>



<p class="wp-block-paragraph">150円　×　4,000通貨　×レバレッジ10　=　残高 60,000円</p>



<p class="wp-block-paragraph">となります。1000通貨運用で、最大4ポジション取るこのEA設定だと証拠金自体は6万円が必要という事ですね。</p>



<p class="wp-block-paragraph">年利50%のとき、月あたりの利率は3.44%です。　6万円の場合は</p>



<p class="wp-block-paragraph">6万円　×　3.44%　=　2,064円</p>



<p class="wp-block-paragraph">1000通貨だと、月に206.4pips取る必要がありますね。　</p>



<p class="wp-block-paragraph">20日取引できるとしたら、1日あたり、10.32pipsです。おや？なんかやれるかも…？</p>



<p class="wp-block-paragraph">そう、ちゃんと具体化することの大事さってこういう事なんですよね。まぁ実際できるかわかりませんけど(笑)</p>



<p class="wp-block-paragraph">こんな感じで、<span class="sc_marker" style="background: linear-gradient(transparent 50%, #ffff66 50%);">自分好みのEA設定を考えるのが第一歩！</span>という事で、今回はこの辺で！</p>



<a href="https://px.a8.net/svt/ejp?a8mat=3T0G8I+D15NSA+48D0+6AJV5" rel="nofollow">
<img loading="lazy" decoding="async" border="0" width="728" height="90" alt="" src="https://www21.a8.net/svt/bgt?aid=230128434788&wid=004&eno=01&mid=s00000019746001057000&mc=1"></a>
<img loading="lazy" decoding="async" border="0" width="1" height="1" src="https://www12.a8.net/0.gif?a8mat=3T0G8I+D15NSA+48D0+6AJV5" alt=""><a href="https://www.tcs-asp.net/alink?AC=C100628&LC=RSEC2&SQ=0&isq=204"><img decoding="async" src="https://img.tcs-asp.net/imagesender?ac=C100628&lc=RSEC2&isq=204&psq=0" border="0" alt="楽天証券（FX）"></a>



<h2 class="wp-block-heading">おすすめFXアイテム</h2>



<p class="wp-block-paragraph">過去検証や分析はMT4かFT4、Trading viewがおすすめです。</p>



<p class="wp-block-paragraph">無料が良い人はMT4で、MT4を使わせてくれる口座を使用すると良いです。おすすめはFXTF</p>



<p class="wp-block-paragraph">ガチで過去検証をやりたい人はFT4、<a href="https://h.accesstrade.net/sp/cc?rk=0100kxwf00j59w"></a></p>



<p class="wp-block-paragraph">チャート分析に毎月課金してもいいよって人はTrading viewがおすすめです。無料もあります</p>



<a href="https://px.a8.net/svt/ejp?a8mat=3T0G8I+D15NSA+48D0+6AC5D" rel="nofollow">
<img loading="lazy" decoding="async" border="0" width="728" height="90" alt="" src="https://www28.a8.net/svt/bgt?aid=230128434788&wid=004&eno=01&mid=s00000019746001056000&mc=1"></a>
<img loading="lazy" decoding="async" border="0" width="1" height="1" src="https://www18.a8.net/0.gif?a8mat=3T0G8I+D15NSA+48D0+6AC5D" alt=""> <a rel="nofollow" href="//af.moshimo.com/af/c/click?a_id=1717521&amp;p_id=2360&amp;pc_id=5104&amp;pl_id=30913&amp;guid=ON"><img loading="lazy" decoding="async" width="300" height="250" style="border:none;" src="//image.moshimo.com/af-img/1739/000000030913.jpg"></a><img loading="lazy" decoding="async" width="1" height="1" style="border:none;" src="//i.moshimo.com/af/i/impression?a_id=1717521&amp;p_id=2360&amp;pc_id=5104&amp;pl_id=30913"> <a rel="noopener noreferrer" href="https://tradingview.go2cloud.org/aff_c?offer_id=2&amp;aff_id=20855&amp;file_id=292" target="_blank"><img loading="lazy" decoding="async" width="728" height="90" border="0" src="https://media.go2speed.org/brand/files/tradingview/2/728x90.jpg"></a><img loading="lazy" decoding="async" width="0" height="0" border="0" style="position:absolute;visibility:hidden;" src="https://tradingview.go2cloud.org/aff_i?offer_id=2&amp;file_id=292&amp;aff_id=20855">
]]></content:encoded>
					
					<wfw:commentRss>https://fp-shima.ne.jp/2025/04/09/ea2/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>EAを自作してみよう！MT4を楽天証券で使うよ！(1)</title>
		<link>https://fp-shima.ne.jp/2025/04/02/ea1/</link>
					<comments>https://fp-shima.ne.jp/2025/04/02/ea1/#respond</comments>
		
		<dc:creator><![CDATA[FPshima]]></dc:creator>
		<pubDate>Wed, 02 Apr 2025 05:02:13 +0000</pubDate>
				<category><![CDATA[pineスクリプト]]></category>
		<category><![CDATA[チャート分析]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[EA]]></category>
		<category><![CDATA[FX]]></category>
		<category><![CDATA[MQL]]></category>
		<category><![CDATA[MT4]]></category>
		<category><![CDATA[チャート]]></category>
		<guid isPermaLink="false">https://fp-shima.ne.jp/?p=3700</guid>

					<description><![CDATA[投資したい！けど株価見たり、業績調査したり、情報調べたり…そんな時間ないよ！勝手にお金だけ増えればいいのに！そんな人の為にあるのが 自動で為替を売買してくれるプログラムです。 今回から、何回かの回に分けて、EAを作っちゃおうっていう企画をや…]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="483" src="https://fp-shima.ne.jp/wp-content/uploads/2024/08/offlinechart-1024x483.png" alt="" class="wp-image-3715" srcset="https://fp-shima.ne.jp/wp-content/uploads/2024/08/offlinechart-1024x483.png 1024w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/offlinechart-300x141.png 300w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/offlinechart-150x71.png 150w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/offlinechart-768x362.png 768w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/offlinechart-1536x724.png 1536w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/offlinechart.png 1678w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">投資したい！けど株価見たり、業績調査したり、情報調べたり…そんな時間ないよ！勝手にお金だけ増えればいいのに！そんな人の為にあるのが<span class="fontcolor" style="color:#ff3333;">ＥA(エキスパートアドバイザー）</span>



<p class="wp-block-paragraph">自動で為替を売買してくれるプログラムです。</p>



<p class="wp-block-paragraph">今回から、何回かの回に分けて、EAを作っちゃおうっていう企画をやってみます。</p>



<a rel="noopener noreferrer" href="https://tradingview.go2cloud.org/aff_c?offer_id=2&amp;aff_id=20855&amp;file_id=292" target="_blank"><img loading="lazy" decoding="async" width="728" height="90" border="0" src="https://media.go2speed.org/brand/files/tradingview/2/728x90.jpg"></a><img loading="lazy" decoding="async" width="0" height="0" border="0" style="position:absolute;visibility:hidden;" src="https://tradingview.go2cloud.org/aff_i?offer_id=2&amp;file_id=292&amp;aff_id=20855">



<p class="wp-block-paragraph">ちなみに<a href="https://fp-shima.ne.jp/2020/01/09/fx-ea/" data-type="post" data-id="1204">EA</a>に関しては、他の記事でも触れています。売られてもいますが、高額で、元を取るまでにかかる時間を考えると、結構な元手が無いと大変です。</p>



<p class="wp-block-paragraph">そんなわけで、作っちゃえば良くない？っていう発想で行きます。</p>



<p class="wp-block-paragraph">なお、こちらのサイトのようなところへ行けば、EA自体は購入が可能です。</p>



<a href="https://www.gogojungle.co.jp/re/YvufDmBmZnPW7wZ" rel="nofollow"><img decoding="async" src="https://www.gogojungle.co.jp/img/affiliates/1040/1" alt="投資家の祭典 GogoJungle AWARD 2023" width="728px" height="90px"></a><img loading="lazy" decoding="async" class="ext-content" style="display: block;" border="0" width="1" height="1" src="https://www.gogojungle.co.jp/re/img/YvufDmBmZnPW7wZ"/>



<h2 class="wp-block-heading has-text-align-center" id="複数インジケーターの価値">EA作るための準備</h2>



<p class="wp-block-paragraph"><span class="sc_marker" style="background: linear-gradient(transparent 50%, #ffff66 50%);">プログラミングの知識必須！</span>なんて、元も子もない事は言いませんが、必要なものがいくつかあります。</p>



<div class="wp-block-dvaux-frame sc_frame_wrap inframe"><div class="sc_frame_title inframe" style="background-color:#70b8f1">ＥA自作に必要なもの</div><div class="sc_frame" style="background-color:#fff;border-color:#70b8f1">
<ul class="wp-block-list">
<li><strong>PC</strong></li>



<li><strong>MT4　または　MT5</strong></li>
</ul>
</div></div>



<p class="wp-block-paragraph">当然と言ったらそれまでですが、プログラミングするうえでは、パソコン必須です。パソコン無い人は買いましょう。EA制作だけならほんとに最小限の性能で良いので2~3万円で買えるノートパソコンで良いと思います。officeとかも無くていいです。</p>



<table border="0" cellpadding="0" cellspacing="0"><tr><td><div style="border:1px solid #95a5a6;border-radius:.75rem;background-color:#FFFFFF;width:504px;margin:0px;padding:5px;text-align:center;overflow:hidden;"><table><tr><td style="width:240px"><a href="https://hb.afl.rakuten.co.jp/ichiba/46450209.eb753182.4645020a.cdb2d7d6/?pc=https%3A%2F%2Fitem.rakuten.co.jp%2Fphi777%2Fbjb003%2F&link_type=picttext&ut=eyJwYWdlIjoiaXRlbSIsInR5cGUiOiJwaWN0dGV4dCIsInNpemUiOiIyNDB4MjQwIiwibmFtIjoxLCJuYW1wIjoicmlnaHQiLCJjb20iOjEsImNvbXAiOiJkb3duIiwicHJpY2UiOjEsImJvciI6MSwiY29sIjoxLCJiYnRuIjoxLCJwcm9kIjowLCJhbXAiOmZhbHNlfQ%3D%3D" target="_blank" rel="nofollow sponsored noopener" style="word-wrap:break-word;"><img decoding="async" src="https://hbb.afl.rakuten.co.jp/hgb/46450209.eb753182.4645020a.cdb2d7d6/?me_id=1374699&item_id=10005923&pc=https%3A%2F%2Fthumbnail.image.rakuten.co.jp%2F%400_mall%2Fphi777%2Fcabinet%2F10585142%2F10647368%2F10808789%2Fimgrc0136718681.jpg%3F_ex%3D240x240&s=240x240&t=picttext" border="0" style="margin:2px" alt="[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]" title="[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]"></a></td><td style="vertical-align:top;width:248px;display: block;"><p style="font-size:12px;line-height:1.4em;text-align:left;margin:0px;padding:2px 6px;word-wrap:break-word"><a href="https://hb.afl.rakuten.co.jp/ichiba/46450209.eb753182.4645020a.cdb2d7d6/?pc=https%3A%2F%2Fitem.rakuten.co.jp%2Fphi777%2Fbjb003%2F&link_type=picttext&ut=eyJwYWdlIjoiaXRlbSIsInR5cGUiOiJwaWN0dGV4dCIsInNpemUiOiIyNDB4MjQwIiwibmFtIjoxLCJuYW1wIjoicmlnaHQiLCJjb20iOjEsImNvbXAiOiJkb3duIiwicHJpY2UiOjEsImJvciI6MSwiY29sIjoxLCJiYnRuIjoxLCJwcm9kIjowLCJhbXAiOmZhbHNlfQ%3D%3D" target="_blank" rel="nofollow sponsored noopener" style="word-wrap:break-word;">＼本日限定全店10%oFF 26800⇒24120円！／【楽天ランキング1位！】三年保証 パソコン ノートパソコン office付き 第13世代 CPU 14.1/15.6型 フルHD液晶 高性能メモリ 32GB SSD 2TB 指紋認証 冷却ファzン ビジネス 初心者向け 初期設定済 Windows11 ノートPC</a><br><span >価格：26,800円～（税込、送料無料)</span> <span style="color:#BBB">(2025/3/23時点)</span></p><div style="margin:10px;"><a href="https://hb.afl.rakuten.co.jp/ichiba/46450209.eb753182.4645020a.cdb2d7d6/?pc=https%3A%2F%2Fitem.rakuten.co.jp%2Fphi777%2Fbjb003%2F&link_type=picttext&ut=eyJwYWdlIjoiaXRlbSIsInR5cGUiOiJwaWN0dGV4dCIsInNpemUiOiIyNDB4MjQwIiwibmFtIjoxLCJuYW1wIjoicmlnaHQiLCJjb20iOjEsImNvbXAiOiJkb3duIiwicHJpY2UiOjEsImJvciI6MSwiY29sIjoxLCJiYnRuIjoxLCJwcm9kIjowLCJhbXAiOmZhbHNlfQ%3D%3D" target="_blank" rel="nofollow sponsored noopener" style="word-wrap:break-word;"><img decoding="async" src="https://static.affiliate.rakuten.co.jp/makelink/rl.svg" style="float:left;max-height:27px;width:auto;margin-top:0" ></a><a href="https://hb.afl.rakuten.co.jp/ichiba/46450209.eb753182.4645020a.cdb2d7d6/?pc=https%3A%2F%2Fitem.rakuten.co.jp%2Fphi777%2Fbjb003%2F%3Fscid%3Daf_pc_bbtn&link_type=picttext&ut=eyJwYWdlIjoiaXRlbSIsInR5cGUiOiJwaWN0dGV4dCIsInNpemUiOiIyNDB4MjQwIiwibmFtIjoxLCJuYW1wIjoicmlnaHQiLCJjb20iOjEsImNvbXAiOiJkb3duIiwicHJpY2UiOjEsImJvciI6MSwiY29sIjoxLCJiYnRuIjoxLCJwcm9kIjowLCJhbXAiOmZhbHNlfQ==" target="_blank" rel="nofollow sponsored noopener" style="word-wrap:break-word;"><div style="float:right;width:41%;height:27px;background-color:#bf0000;color:#fff!important;font-size:12px;font-weight:500;line-height:27px;margin-left:1px;padding: 0 12px;border-radius:16px;cursor:pointer;text-align:center;"> 楽天で購入 </div></a></div></td></tr></table></div><br><p style="color:#000000;font-size:12px;line-height:1.4em;margin:5px;word-wrap:break-word"></p></td></tr></table>



<p class="wp-block-paragraph">これなんかだとoffice入って新品で、十二分な性能なのに3万円位です。良い時代になりました…私が学生時代は、これに、はるかに劣る性能で20万円位しましたからね…（泣）</p>



<p class="wp-block-paragraph">そして、EAはMQLという言語で書かれますが、それが使えるのが<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-red-color">MT4</mark>または<mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-red-color">MT5</mark>というソフト？アプリケーション？です。</p>



<p class="wp-block-paragraph">MT4自体は無料で手に入るのですが、使える証券会社が決まっています。したがって、FXの口座を作る段階から考慮が必要です。また、MT5は日本国内だと使える会社がほとんどありません。(2025年現在）</p>



<p class="wp-block-paragraph">したがって、今でもMT4が現役です。5年以上前からそうなので、きっと今後もあまり状態は変わらないと思われます。</p>



<a href="https://px.a8.net/svt/ejp?a8mat=3T0G8I+D15NSA+48D0+6AJV5" rel="nofollow">
<img loading="lazy" decoding="async" border="0" width="728" height="90" alt="" src="https://www21.a8.net/svt/bgt?aid=230128434788&wid=004&eno=01&mid=s00000019746001057000&mc=1"></a>
<img loading="lazy" decoding="async" border="0" width="1" height="1" src="https://www12.a8.net/0.gif?a8mat=3T0G8I+D15NSA+48D0+6AJV5" alt=""><a href="https://www.tcs-asp.net/alink?AC=C100628&LC=RSEC2&SQ=0&isq=204"><img decoding="async" src="https://img.tcs-asp.net/imagesender?ac=C100628&lc=RSEC2&isq=204&psq=0" border="0" alt="楽天証券（FX）"></a>



<p class="wp-block-paragraph">おすすめは、FXTFか楽天です。FXTFは過去データが公開されているので、EAを作るうえでは便利ですが、EAでの売買には手数料が取られる点が残念なところ。</p>



<p class="wp-block-paragraph">特に制約が無ければ、<a href="https://www.tcs-asp.net/alink?AC=C100628&amp;LC=RSEC2&amp;SQ=0&amp;isq=100">楽天FX</a>で口座を作るのが良いでしょう。</p>



<h2 class="wp-block-heading">MT4をダウンロードする</h2>



<p class="wp-block-paragraph">色々すっとばして、楽天でFX口座を作ったとして、ログインすると上部にMT4と書かれているのでポチっとすると、以下のようなページに行けます。もしくはマイページや、FX口座にログインしないで、証券口座のFXタブからもダウンロードできます。つまりいろんなところからダウンロードできます。ただし、楽天FXで使う場合は楽天からダウンロードしましょう。スマホはMT4がダウンロードできればサーバーを楽天にすれば大丈夫ですが、EAは使えません。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="370" src="https://fp-shima.ne.jp/wp-content/uploads/2024/08/mt4DL-1024x370.png" alt="" class="wp-image-3703" srcset="https://fp-shima.ne.jp/wp-content/uploads/2024/08/mt4DL-1024x370.png 1024w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/mt4DL-300x108.png 300w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/mt4DL-150x54.png 150w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/mt4DL-768x277.png 768w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/mt4DL.png 1490w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">この青いところをクリックすると、別ページに飛んで、丁寧な解説があるので、それに沿って行けばOK</p>



<p class="wp-block-paragraph"></p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="463" src="https://fp-shima.ne.jp/wp-content/uploads/2024/08/rakutenmt4-1024x463.png" alt="" class="wp-image-3710" srcset="https://fp-shima.ne.jp/wp-content/uploads/2024/08/rakutenmt4-1024x463.png 1024w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/rakutenmt4-300x136.png 300w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/rakutenmt4-150x68.png 150w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/rakutenmt4-768x347.png 768w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/rakutenmt4-1536x695.png 1536w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/rakutenmt4.png 1859w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">ポチポチしていくと楽天MT4が立ち上がってこんな画面になります。</p>



<p class="wp-block-paragraph">左の真ん中やや下位にあるナビゲーター、口座ってところから口座番号とMT4用のパスワードで入ります。MT4用のパスワードは、マイページのMT4からパスワード設定で設定し、即反映されます。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="672" height="418" src="https://fp-shima.ne.jp/wp-content/uploads/2024/08/option.png" alt="" class="wp-image-3711" srcset="https://fp-shima.ne.jp/wp-content/uploads/2024/08/option.png 672w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/option-300x187.png 300w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/option-150x93.png 150w" sizes="auto, (max-width: 672px) 100vw, 672px" /></figure>



<p class="wp-block-paragraph">続いて、MT4画面上部のツール→オプションと選ぶと上図が出てきますので、チャートを選択し、バーを両方99999…にしておきましょう。特にこだわりが無ければこうしておくと良いです。重くなると嫌！って人はいじらなくてもOK</p>



<h2 class="wp-block-heading">EAテスト用に過去データを増やそう！</h2>



<p class="wp-block-paragraph">EAを作るうえで重要なのがバックテスト。</p>



<p class="wp-block-paragraph">過去のデータで勝てないEAは基本的に今後も勝てません。ただ、過去チャートに勝てても、今後勝てる保証があるわけではない点にも注意が必要です。</p>



<p class="wp-block-paragraph">「FXDD　ヒストリカルデータ」で検索して、扱いたい通貨ペアのデータを取ってきます。古いデータなんて要らない！って人はやらなくてもOK</p>



<p class="wp-block-paragraph">zipファイルなんで適当に解凍しといてください。</p>



<p class="wp-block-paragraph">そしたら、今度はMT4の、ファイル→データフォルダを開く→history→defaultと選択して、中にあるファイルのうち、自分が使う予定の通貨ペアを消します。ドル円ならUSDJPY~となっているものをすべて削除</p>



<p class="wp-block-paragraph">タスクバーにピン止めしておくと作業がしやすいです。下のバーの楽天MT4のマークを右クリックして、ピン止めしておきましょう。その後、一旦MT4を閉じて、再起動します。</p>



<p class="wp-block-paragraph">再起動したら、今度はツール→ヒストリーセンター→左の通貨ペアから、Forex→使用したい通貨ペアを選択　ダブルクリックすると1分足が選択できるので、選択します。その後インポート。FXDDからダウンロードして解凍したファイルを選択します。この際、ファイルは.hst形式なので、見つからない場合は、右下のファイルの形式を選択して.hstを選びましょう。</p>



<p class="wp-block-paragraph">そうしたら、もう一回MT4を再起動します。これで、ヒストリカルデータは入りました。この後、1分足からデータを変換するのですが、大変なので、<a href="https://www.mql5.com/ja/code/19839">こちらのサイトから</a>スクリプトを取得すると良いです。このスクリプトを使う人はMT4のファイル→フォルダを開く→MQL4→Scriptsフォルダの中にファイルを置いてください。このスクリプトを使う人は、スクリプトをフォルダに移してから再起動しましょう。なんか怖い…って人は使いたい足にひとつずつPeriodConverterで変換してください。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="483" src="https://fp-shima.ne.jp/wp-content/uploads/2024/08/offlinechart-1024x483.png" alt="" class="wp-image-3715" srcset="https://fp-shima.ne.jp/wp-content/uploads/2024/08/offlinechart-1024x483.png 1024w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/offlinechart-300x141.png 300w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/offlinechart-150x71.png 150w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/offlinechart-768x362.png 768w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/offlinechart-1536x724.png 1536w, https://fp-shima.ne.jp/wp-content/uploads/2024/08/offlinechart.png 1678w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">そして、ファイル→オフラインチャート→さっきインポートした通貨ペアと選択するとチャートが表示されます。そこにナビゲーター欄にあるPeriodConverterAllをドラッグアンドドロップ。もしくはダブルクリック。パラメーターの選択はすべてtrueにすると良いでしょう。これで、EAを作った後にバックテストで動作確認も可能になりました！PeriodConverterを使う人は作りたい足の値を設定。</p>



<p class="wp-block-paragraph">5分足を作りたいときは5とします。</p>



<p class="wp-block-paragraph">これで、準備は完了！次回は、どんなEAを作るかについて考えます！</p>



<h2 class="wp-block-heading">おすすめFXアイテム</h2>



<p class="wp-block-paragraph">過去検証や分析はMT4かFT4、Trading viewがおすすめです。</p>



<p class="wp-block-paragraph">無料が良い人はMT4で、MT4を使わせてくれる口座を使用すると良いです。おすすめはFXTF</p>



<p class="wp-block-paragraph">ガチで過去検証をやりたい人はFT4、<a href="https://h.accesstrade.net/sp/cc?rk=0100kxwf00j59w"></a></p>



<p class="wp-block-paragraph">チャート分析に毎月課金してもいいよって人はTrading viewがおすすめです。無料もあります</p>



<a href="https://px.a8.net/svt/ejp?a8mat=3T0G8I+D15NSA+48D0+6AC5D" rel="nofollow">
<img loading="lazy" decoding="async" border="0" width="728" height="90" alt="" src="https://www28.a8.net/svt/bgt?aid=230128434788&wid=004&eno=01&mid=s00000019746001056000&mc=1"></a>
<img loading="lazy" decoding="async" border="0" width="1" height="1" src="https://www18.a8.net/0.gif?a8mat=3T0G8I+D15NSA+48D0+6AC5D" alt=""> <a rel="nofollow" href="//af.moshimo.com/af/c/click?a_id=1717521&amp;p_id=2360&amp;pc_id=5104&amp;pl_id=30913&amp;guid=ON"><img loading="lazy" decoding="async" width="300" height="250" style="border:none;" src="//image.moshimo.com/af-img/1739/000000030913.jpg"></a><img loading="lazy" decoding="async" width="1" height="1" style="border:none;" src="//i.moshimo.com/af/i/impression?a_id=1717521&amp;p_id=2360&amp;pc_id=5104&amp;pl_id=30913"> <a rel="noopener noreferrer" href="https://tradingview.go2cloud.org/aff_c?offer_id=2&amp;aff_id=20855&amp;file_id=292" target="_blank"><img loading="lazy" decoding="async" width="728" height="90" border="0" src="https://media.go2speed.org/brand/files/tradingview/2/728x90.jpg"></a><img loading="lazy" decoding="async" width="0" height="0" border="0" style="position:absolute;visibility:hidden;" src="https://tradingview.go2cloud.org/aff_i?offer_id=2&amp;file_id=292&amp;aff_id=20855">
]]></content:encoded>
					
					<wfw:commentRss>https://fp-shima.ne.jp/2025/04/02/ea1/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>損切設定ってどのくらいが適切？　ヒゲで切られると涙出る 三項演算子も使ってみるよ！</title>
		<link>https://fp-shima.ne.jp/2023/07/27/pine16/</link>
					<comments>https://fp-shima.ne.jp/2023/07/27/pine16/#respond</comments>
		
		<dc:creator><![CDATA[FPshima]]></dc:creator>
		<pubDate>Thu, 27 Jul 2023 07:41:19 +0000</pubDate>
				<category><![CDATA[pineスクリプト]]></category>
		<category><![CDATA[チャート分析]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[FX]]></category>
		<category><![CDATA[tradingview]]></category>
		<category><![CDATA[チャート]]></category>
		<category><![CDATA[三項演算子]]></category>
		<guid isPermaLink="false">https://fp-shima.ne.jp/?p=3230</guid>

					<description><![CDATA[今回はpineを使って損切ってどのくらいが適切なのかな～ってのを調べてみたいと思います。また、pine言語の演算子の三項演算子や、加算代入も使っていきます。 ↑バナークリックでトレーディングビューのサイトに行けます 損切どこに置く？ 損切ど…]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">今回はpineを使って損切ってどのくらいが適切なのかな～ってのを調べてみたいと思います。また、pine言語の演算子の三項演算子や、加算代入も使っていきます。</p>



<a rel="noopener noreferrer" href="https://tradingview.go2cloud.org/aff_c?offer_id=2&amp;aff_id=20855&amp;file_id=292" target="_blank"><img loading="lazy" decoding="async" width="728" height="90" border="0" src="https://media.go2speed.org/brand/files/tradingview/2/728x90.jpg"></a><img loading="lazy" decoding="async" width="0" height="0" border="0" style="position:absolute;visibility:hidden;" src="https://tradingview.go2cloud.org/aff_i?offer_id=2&amp;file_id=292&amp;aff_id=20855">



<p class="wp-block-paragraph">↑バナークリックでトレーディングビューのサイトに行けます</p>



<h2 class="wp-block-heading has-text-align-center" id="複数インジケーターの価値">損切どこに置く？</h2>



<p class="wp-block-paragraph">損切どこに置きますか？って話になると、直近<span class="fontcolor" style="color:#ff3333;">高値、安値</span>を目安に置く人が多いのではないかと思います。</p>



<p class="wp-block-paragraph">その理由は、いわゆるダウ理論で流れが変わったと思われるのは、<span class="sc_marker" style="background: linear-gradient(transparent 50%, #ffff66 50%);">高安値が現在トレンドと反対方向に更新されたと見えるから。</span>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="589" src="https://fp-shima.ne.jp/wp-content/uploads/2023/07/230712a損切設定-1024x589.png" alt="" class="wp-image-3231" srcset="https://fp-shima.ne.jp/wp-content/uploads/2023/07/230712a損切設定-1024x589.png 1024w, https://fp-shima.ne.jp/wp-content/uploads/2023/07/230712a損切設定-300x173.png 300w, https://fp-shima.ne.jp/wp-content/uploads/2023/07/230712a損切設定-150x86.png 150w, https://fp-shima.ne.jp/wp-content/uploads/2023/07/230712a損切設定-768x442.png 768w, https://fp-shima.ne.jp/wp-content/uploads/2023/07/230712a損切設定-1536x884.png 1536w, https://fp-shima.ne.jp/wp-content/uploads/2023/07/230712a損切設定-2048x1178.png 2048w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">こんな感じで設定しますよね</p>



<p class="wp-block-paragraph">しかし、実際問題としては</p>



<figure class="wp-block-image aligncenter size-large is-resized"><img loading="lazy" decoding="async" src="https://fp-shima.ne.jp/wp-content/uploads/2023/07/230712b実際-834x1024.png" alt="" class="wp-image-3232" width="417" height="512" srcset="https://fp-shima.ne.jp/wp-content/uploads/2023/07/230712b実際-834x1024.png 834w, https://fp-shima.ne.jp/wp-content/uploads/2023/07/230712b実際-244x300.png 244w, https://fp-shima.ne.jp/wp-content/uploads/2023/07/230712b実際-122x150.png 122w, https://fp-shima.ne.jp/wp-content/uploads/2023/07/230712b実際-768x943.png 768w, https://fp-shima.ne.jp/wp-content/uploads/2023/07/230712b実際-1251x1536.png 1251w, https://fp-shima.ne.jp/wp-content/uploads/2023/07/230712b実際.png 1524w" sizes="auto, (max-width: 417px) 100vw, 417px" /></figure>



<p class="wp-block-paragraph">こういうことが起きて悲しい思いをすることがあります。</p>



<p class="wp-block-paragraph">という事で、今回はこの、ヒゲがどのくらい出るかというところを見ていこうと思います。</p>



<h2 class="wp-block-heading">まずは高安値の設定</h2>



<p class="wp-block-paragraph">実はこれが非常に難しい…　pineでは期間内高値,安値を拾う</p>



<p class="wp-block-paragraph">ta.highest()　と　ta.lowest()があります。</p>



<p class="wp-block-paragraph">ちょっと使ってみましょう。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="649" src="https://fp-shima.ne.jp/wp-content/uploads/2023/07/230712cchart-1024x649.png" alt="" class="wp-image-3233" srcset="https://fp-shima.ne.jp/wp-content/uploads/2023/07/230712cchart-1024x649.png 1024w, https://fp-shima.ne.jp/wp-content/uploads/2023/07/230712cchart-300x190.png 300w, https://fp-shima.ne.jp/wp-content/uploads/2023/07/230712cchart-150x95.png 150w, https://fp-shima.ne.jp/wp-content/uploads/2023/07/230712cchart-768x487.png 768w, https://fp-shima.ne.jp/wp-content/uploads/2023/07/230712cchart.png 1294w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>takane = ta.highest(high,10)
yasune = ta.lowest(low,10)
plot(takane)
plot(yasune)</code></pre></div>



<p class="wp-block-paragraph">引数は(使う値、期間）です。　これだとどこを見たいのかわかりませんね。</p>



<h2 class="wp-block-heading">高安値を考慮するテクニカルといえば！</h2>



<p class="wp-block-paragraph">という事で、今回は高安値を考慮したテクニカル指標<span class="fontcolor" style="color:#ff3333;">ストキャスティクス</span>を使ってみます。</p>



<p class="wp-block-paragraph">取得する値はストキャスティクスの0~10の下ヒゲの長さ　90-100の上ヒゲの長さです。</p>



<p class="wp-block-paragraph">下ヒゲは陽線と陰線でちょっと考え方が違います。if文で書いても良いのですが、今回は三項演算子というものを使って書いてみます。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>uwahige = close &gt; open ? high - close : high - open
shitahige = close &gt; open ? open - low : close - low</code></pre></div>



<p class="wp-block-paragraph">三項演算子とは　「条件　？　条件がtrueの時　：　条件がfalseの時」というような書き方をします。</p>



<p class="wp-block-paragraph">上述のコードだと　close &gt; open で陽線の時という意味で、この条件がtrueのときは</p>



<p class="wp-block-paragraph">high-close　で　高値から終値を引いたヒゲの長さを取得。　一方　この条件がfalseの時（つまり陰線の時）はhigh-openで上に伸びるヒゲを取得します。</p>



<p class="wp-block-paragraph">下ヒゲも同様の考え方になっています。</p>



<h2 class="wp-block-heading">データを抜き出す条件設定をしよう！</h2>



<p class="wp-block-paragraph">さて、最初に示した条件　ストキャスの上限下限10間でデータを抜き出したいので、条件を考えてみましょう。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>indicator(&quot;高安値のヒゲ&quot;)

uwahige = close &gt; open ? high - close : high - open // 上ヒゲ定義
shitahige = close &gt; open ? open - low : close - low //　下ヒゲ定義
takane = ta.highest(high,120)　// 120期間の最高値を取得
yasune = ta.lowest(low,120)　//　120期間の最安値を取得
len = input.int(120,&quot;期間&quot;,minval =  1)　//　期間を変更するオプションを作る
sto = ta.stoch(close,high,low,len)　//　ストキャスティクスの定義、期間をlenにすることで変更可能にした
var uwahigesum = 0.00　// varは一回だけ定義する　つまり入れ物の作成 　上ヒゲ合計値用
var shitahigesum = 0.00　//　0.00になっているものは float　という小数点以下を含む　下ヒゲ合計値用
var uwahigeave = 0.00 // 上ヒゲ平均値用
var shitahigeave = 0.00 // 　下ヒゲ平均値用
var countue = 0　// 一方で　０とするとint(整数)扱いで小数点以下を含む値は入れられない　条件の合った上ヒゲ出現数のカウント用
var countshita = 0　// var int　として定義することもできる　条件の合った下ヒゲ出現数のカウント用
if sto &gt; 90 // ストキャスティクスが90より大きい時
    countue += 1　//　countueを1増やす　
    uwahigesum += uwahige　// uwahigesumにuwahigeを足す
    uwahigeave := uwahigesum/countue // uwahigesumを出現回数で割って平均化
else if sto &lt; 10　// 上記条件でないときかつストキャスティクスが10未満の時
    countshita += 1　//　以下は上ヒゲの下ヒゲバージョン
    shitahigesum += shitahige
    shitahigeave := shitahigesum/countshita

plot(uwahigeave) //　ストキャスティクスが90より大きい時のヒゲの長さの平均値
plot(shitahigeave,color = color.green)//ストキャスティクスが10未満の時のヒゲの長さの平均値
</code></pre></div>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="599" src="https://fp-shima.ne.jp/wp-content/uploads/2023/07/2023-07-27_15h48_53-1024x599.png" alt="" class="wp-image-3241" srcset="https://fp-shima.ne.jp/wp-content/uploads/2023/07/2023-07-27_15h48_53-1024x599.png 1024w, https://fp-shima.ne.jp/wp-content/uploads/2023/07/2023-07-27_15h48_53-300x175.png 300w, https://fp-shima.ne.jp/wp-content/uploads/2023/07/2023-07-27_15h48_53-150x88.png 150w, https://fp-shima.ne.jp/wp-content/uploads/2023/07/2023-07-27_15h48_53-768x449.png 768w, https://fp-shima.ne.jp/wp-content/uploads/2023/07/2023-07-27_15h48_53.png 1476w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">コードの意味についてはコメントを書き込んでいます。</p>



<p class="wp-block-paragraph">意外と上ヒゲと下ヒゲで長さ違うんだな～という印象。まぁ勿論相場の動き方にも依存するでしょうけど</p>



<p class="wp-block-paragraph">また、今回の値は平均値なので、これより大きい事も十分起こりうるでしょう。ただ、高値圏、安値圏にいる時、ヒゲはどちらにも5pips(今回は1時間足で表示してます)程度は出そうです。　</p>



<p class="wp-block-paragraph"></p>



<h2 class="wp-block-heading">演算子の解説</h2>



<p class="wp-block-paragraph">演算子っていうと一般的には　＋　ー　×　÷　の四則演算に使う記号くらいしか思い浮かびませんが、プログラミング的には色々とあります。</p>



<div class="wp-block-dvaux-frame sc_frame_wrap inline"><div class="sc_frame_title inline" style="background-color:#2ac113">演算子</div><div class="sc_frame" style="background-color:#fff;border-color:#2ac113">
<p class="wp-block-paragraph">！＝　　_不等式　一致しないとき</p>



<p class="wp-block-paragraph">%　_モジュロ　割り算の余</p>



<p class="wp-block-paragraph">%=　_モジュロの代入</p>



<p class="wp-block-paragraph">*　_掛け算</p>



<p class="wp-block-paragraph">*=　_掛け算の代入</p>



<p class="wp-block-paragraph">+　_足し算</p>



<p class="wp-block-paragraph">+=　_足し算の代入　<span class="sc_marker" style="background: linear-gradient(transparent 50%, #ffff66 50%);">今回使ってます</span>



<p class="wp-block-paragraph">-　_引き算</p>



<p class="wp-block-paragraph">-=　_引き算の代入</p>



<p class="wp-block-paragraph">/　_割り算</p>



<p class="wp-block-paragraph">/=　_割り算の代入</p>



<p class="wp-block-paragraph">&lt;　_未満　　<span class="sc_marker" style="background: linear-gradient(transparent 50%, #ffff66 50%);">今回使ってます</span>



<p class="wp-block-paragraph">&lt;=　_以下</p>



<p class="wp-block-paragraph">＞　_より大きい　　<span class="sc_marker" style="background: linear-gradient(transparent 50%, #ffff66 50%);">今回使ってます</span>



<p class="wp-block-paragraph">&gt;=　_以上</p>



<p class="wp-block-paragraph">==　_等式　一致するとき</p>



<p class="wp-block-paragraph">?:　_三項演算子　？の前に条件を置いて：の前後に　真のとき、偽のときの返り値を記述<span class="sc_marker" style="background: linear-gradient(transparent 50%, #ffff66 50%);">今回使ってます</span>
</div></div>



<p class="wp-block-paragraph">いっぱいありますね。　まぁ少しずつ覚えていきましょう。今後も使うたびに解説します！</p>



<a rel="noopener noreferrer" href="https://tradingview.go2cloud.org/aff_c?offer_id=2&amp;aff_id=20855&amp;file_id=292" target="_blank"><img loading="lazy" decoding="async" width="728" height="90" border="0" src="https://media.go2speed.org/brand/files/tradingview/2/728x90.jpg"></a><img loading="lazy" decoding="async" width="0" height="0" border="0" style="position:absolute;visibility:hidden;" src="https://tradingview.go2cloud.org/aff_i?offer_id=2&amp;file_id=292&amp;aff_id=20855">



<p class="wp-block-paragraph">今回はヒゲの長さについて考えてみました！実は平均で考えちゃうと何の解決にもなっていません！むしろエントリートリガーに使う方が適切かも！</p>



<h2 class="wp-block-heading">おすすめFXアイテム</h2>



<p class="wp-block-paragraph">過去検証や分析はMT4かFT4、Trading viewがおすすめです。</p>



<p class="wp-block-paragraph">無料が良い人はMT4で、MT4を使わせてくれる口座を使用すると良いです。おすすめはFXTF</p>



<p class="wp-block-paragraph">ガチで過去検証をやりたい人はFT4、<a href="https://h.accesstrade.net/sp/cc?rk=0100kxwf00j59w"></a></p>



<p class="wp-block-paragraph">チャート分析に毎月課金してもいいよって人はTrading viewがおすすめです。無料もあります</p>



<a href="https://px.a8.net/svt/ejp?a8mat=3T0G8I+D15NSA+48D0+6AC5D" rel="nofollow">
<img loading="lazy" decoding="async" border="0" width="728" height="90" alt="" src="https://www28.a8.net/svt/bgt?aid=230128434788&wid=004&eno=01&mid=s00000019746001056000&mc=1"></a>
<img loading="lazy" decoding="async" border="0" width="1" height="1" src="https://www18.a8.net/0.gif?a8mat=3T0G8I+D15NSA+48D0+6AC5D" alt=""> <a rel="nofollow" href="//af.moshimo.com/af/c/click?a_id=1717521&amp;p_id=2360&amp;pc_id=5104&amp;pl_id=30913&amp;guid=ON"><img loading="lazy" decoding="async" width="300" height="250" style="border:none;" src="//image.moshimo.com/af-img/1739/000000030913.jpg"></a><img loading="lazy" decoding="async" width="1" height="1" style="border:none;" src="//i.moshimo.com/af/i/impression?a_id=1717521&amp;p_id=2360&amp;pc_id=5104&amp;pl_id=30913"> <a rel="noopener noreferrer" href="https://tradingview.go2cloud.org/aff_c?offer_id=2&amp;aff_id=20855&amp;file_id=292" target="_blank"><img loading="lazy" decoding="async" width="728" height="90" border="0" src="https://media.go2speed.org/brand/files/tradingview/2/728x90.jpg"></a><img loading="lazy" decoding="async" width="0" height="0" border="0" style="position:absolute;visibility:hidden;" src="https://tradingview.go2cloud.org/aff_i?offer_id=2&amp;file_id=292&amp;aff_id=20855">
]]></content:encoded>
					
					<wfw:commentRss>https://fp-shima.ne.jp/2023/07/27/pine16/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ボリンジャーバンドって何なの？σ？pineで見ていこう</title>
		<link>https://fp-shima.ne.jp/2023/02/21/pine15/</link>
					<comments>https://fp-shima.ne.jp/2023/02/21/pine15/#respond</comments>
		
		<dc:creator><![CDATA[FPshima]]></dc:creator>
		<pubDate>Tue, 21 Feb 2023 13:20:40 +0000</pubDate>
				<category><![CDATA[pineスクリプト]]></category>
		<category><![CDATA[チャート分析]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[FX]]></category>
		<category><![CDATA[tradingview]]></category>
		<category><![CDATA[ストラテジー]]></category>
		<category><![CDATA[チャート]]></category>
		<category><![CDATA[ボリンジャーバンド]]></category>
		<guid isPermaLink="false">https://fp-shima.ne.jp/?p=3103</guid>

					<description><![CDATA[今回はボリンジャーバンドについて統計的解説込みで見ていきます ↑バナークリックでトレーディングビューのサイトに行けます ボリンジャーバンドとは John Bolingerさんが1980年代に考案したとされる移動平均にσ(シグマ)を合わせた線…]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">今回はボリンジャーバンドについて統計的解説込みで見ていきます</p>



<a rel="noopener noreferrer" href="https://tradingview.go2cloud.org/aff_c?offer_id=2&amp;aff_id=20855&amp;file_id=292" target="_blank"><img loading="lazy" decoding="async" width="728" height="90" border="0" src="https://media.go2speed.org/brand/files/tradingview/2/728x90.jpg"></a><img loading="lazy" decoding="async" width="0" height="0" border="0" style="position:absolute;visibility:hidden;" src="https://tradingview.go2cloud.org/aff_i?offer_id=2&amp;file_id=292&amp;aff_id=20855">



<p class="wp-block-paragraph">↑バナークリックでトレーディングビューのサイトに行けます</p>



<h2 class="has-text-align-center wp-block-heading" id="複数インジケーターの価値">ボリンジャーバンドとは</h2>



<p class="wp-block-paragraph">John Bolingerさんが1980年代に考案したとされる移動平均にσ(シグマ)を合わせた線のことです。</p>



<p class="wp-block-paragraph">σと呼ばれているものは<span class="fontcolor" style="color:#ff3333;">標準偏差</span>のこと。　標準偏差は統計要約値のひとつで平均に対して個々のデータがどのような分布をしているかを見るための指標です。一般に、正規分布しているデータは平均値±1σの中に約68%　±2σに約95%が入るようなっています</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="970" height="677" src="https://fp-shima.ne.jp/wp-content/uploads/2023/02/正規分布.png" alt="" class="wp-image-3104" srcset="https://fp-shima.ne.jp/wp-content/uploads/2023/02/正規分布.png 970w, https://fp-shima.ne.jp/wp-content/uploads/2023/02/正規分布-300x209.png 300w, https://fp-shima.ne.jp/wp-content/uploads/2023/02/正規分布-150x105.png 150w, https://fp-shima.ne.jp/wp-content/uploads/2023/02/正規分布-768x536.png 768w" sizes="auto, (max-width: 970px) 100vw, 970px" /></figure>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="916" height="274" src="https://fp-shima.ne.jp/wp-content/uploads/2023/02/正規分布割合.png" alt="" class="wp-image-3105" srcset="https://fp-shima.ne.jp/wp-content/uploads/2023/02/正規分布割合.png 916w, https://fp-shima.ne.jp/wp-content/uploads/2023/02/正規分布割合-300x90.png 300w, https://fp-shima.ne.jp/wp-content/uploads/2023/02/正規分布割合-150x45.png 150w, https://fp-shima.ne.jp/wp-content/uploads/2023/02/正規分布割合-768x230.png 768w" sizes="auto, (max-width: 916px) 100vw, 916px" /></figure>



<p class="wp-block-paragraph">良く使われるのは20期間MAに対して1σ、2σ、3σ離れた位置にバンドを出すもの</p>



<p class="wp-block-paragraph">日本では3σになったら戻ってくるだろう！と逆張りに良く使われていますが実際問題”今”+3σの位置にいたとしても20期間後にどの位置にいるかわからないのでそれでいつも勝てるわけでもありません。</p>



<h2 class="wp-block-heading">スクイーズ(squeeze)とエクスパンション(<strong>expansion</strong>)</h2>



<p class="wp-block-paragraph">他の概念としてはスクイーズとエクスパンションというものがあります。意味は圧縮するとかのスクイーズ・拡大するとかっていうエクスパンションです</p>



<p class="wp-block-paragraph">状態としてはボリンジャーバンドがMAの近くを等距離で推移しているか、拡大しているかというものです。</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="533" src="https://fp-shima.ne.jp/wp-content/uploads/2023/02/bolin-1024x533.png" alt="" class="wp-image-3106" srcset="https://fp-shima.ne.jp/wp-content/uploads/2023/02/bolin-1024x533.png 1024w, https://fp-shima.ne.jp/wp-content/uploads/2023/02/bolin-300x156.png 300w, https://fp-shima.ne.jp/wp-content/uploads/2023/02/bolin-150x78.png 150w, https://fp-shima.ne.jp/wp-content/uploads/2023/02/bolin-768x400.png 768w, https://fp-shima.ne.jp/wp-content/uploads/2023/02/bolin.png 1394w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">緑枠がエクスパンション赤枠がスクイーズ　白枠はバンドウォークと呼ばれる状態です。</p>



<p class="wp-block-paragraph">エクスパンションは偏差が大きくなるほど大きな値動きがあること、スクイーズはあまり大きな値動きの無い状態を示していて、この状態を繰り返しています。</p>



<p class="wp-block-paragraph">一方、バンドウォークと呼ばれる状態になることもあります。</p>



<h2 class="wp-block-heading">バンドウォーク</h2>



<p class="wp-block-paragraph">バンドウォークはMAに対して1σ~2σあたりを動きながら徐々に下がる、または徐々に上がる状態</p>



<p class="wp-block-paragraph">この時に逆張りをすると痛い目に遭います。</p>



<p class="wp-block-paragraph">結局ボリンジャーバンドは20期間のσと言っていますが、両方向の期間に影響を与えている値なので過去20期間で-3σの位置にいたとしてもその後の20期間で+1σの価格帯という事は十分に起こりえます。</p>



<p class="wp-block-paragraph">例を見てみましょう</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="532" src="https://fp-shima.ne.jp/wp-content/uploads/2023/02/bolin2-1024x532.png" alt="" class="wp-image-3107" srcset="https://fp-shima.ne.jp/wp-content/uploads/2023/02/bolin2-1024x532.png 1024w, https://fp-shima.ne.jp/wp-content/uploads/2023/02/bolin2-300x156.png 300w, https://fp-shima.ne.jp/wp-content/uploads/2023/02/bolin2-150x78.png 150w, https://fp-shima.ne.jp/wp-content/uploads/2023/02/bolin2-768x399.png 768w, https://fp-shima.ne.jp/wp-content/uploads/2023/02/bolin2.png 1404w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">拡大して40本のロウソクが入るようにしました。真ん中の価格帯終値を黄色の水平線で示しています。</p>



<p class="wp-block-paragraph">左側の水色矢印が前半20MAのボリンジャーバンドの±3σの範囲</p>



<p class="wp-block-paragraph">右側の赤矢印の枠が後半20MAのボリンジャーバンド±3σの範囲です。</p>



<p class="wp-block-paragraph">前半-3σでも後半は+1σですね。こう見ると逆張りはだめなのかな～と思いますね。</p>



<p class="wp-block-paragraph">ただ、違うのは終値の分布の仕方</p>



<p class="wp-block-paragraph">前半はMAに近いところをうろうろしています。いわゆる<span class="sc_marker" style="background: linear-gradient(transparent 50%, #ffff66 50%);">スクイーズ</span>



<p class="wp-block-paragraph">一方後半はMAから離れた<span class="sc_marker" style="background: linear-gradient(transparent 50%, #ffff66 50%);">バンドウォークをしながらのエクスパンション</span>



<p class="wp-block-paragraph">つまり、<span class="sc_marker" style="background: linear-gradient(transparent 50%, #ffff66 50%);">エクスパンションを伴う場合はバンドウォークしがち</span>。と言えるでしょう</p>



<p class="wp-block-paragraph">スクイーズしてるときは様子見で、エクスパンションした時に仕掛ける！といった使い方が良いかもしれません。</p>



<h2 class="wp-block-heading">ボリンジャーバンドの使い方</h2>



<p class="wp-block-paragraph">逆張りにも順張りにも使えちゃうんじゃどうすればいいのかわからない…　そうなりますよね</p>



<p class="wp-block-paragraph">なので、例えばマルチタイムフレームで考えてみたり、期間を複数使ったり、他のインジケーターと組み合わせてみたり…工夫はいろいろできると思います。</p>



<p class="wp-block-paragraph">今回はpineでマルチタイムフレーム的な考え方で順張り方向に逆張りしていくスタンスを考えてみましょう。</p>



<p class="wp-block-paragraph">少し難しいコードになりそうです。</p>



<h2 class="wp-block-heading">コードを書いてみよう！</h2>



<p class="wp-block-paragraph">ボリンジャーバンドは3つの値が返ってくる関数ta.bb()が用意されています。</p>



<p class="wp-block-paragraph">引数はta.bb(値、期間、偏差)で戻り値は[MA、+偏差、-偏差]です。</p>



<p class="wp-block-paragraph">今回は1時間足のボリンジャーバンドで+1σ以上でバンドウォークを期待してロング、-1σ以下の時はショートするような戦略で行きます。その際1時間よりも短い足では反対の-3σでロング、+3σでショートするようにします。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>//@version=5
strategy(&quot;ボリンジャーバンド&quot;, overlay=true, margin_long=100, margin_short=100)

[ma20,ma3u,ma3l] = ta.bb(close,20,3)
plot(ma20)
plot(ma3u)
plot(ma3l)
h1close = request.security(syminfo.tickerid,&quot;60&quot;,close)
hsum = h1close[0*60/timeframe.multiplier]+h1close[1*60/timeframe.multiplier]+h1close[2*60/timeframe.multiplier]+h1close[3*60/timeframe.multiplier]+h1close[4*60/timeframe.multiplier]+h1close[5*60/timeframe.multiplier]+h1close[6*60/timeframe.multiplier]+h1close[7*60/timeframe.multiplier]+h1close[8*60/timeframe.multiplier]+h1close[9*60/timeframe.multiplier]+h1close[10*60/timeframe.multiplier]+h1close[11*60/timeframe.multiplier]+h1close[12*60/timeframe.multiplier]+h1close[13*60/timeframe.multiplier]+h1close[14*60/timeframe.multiplier]+h1close[15*60/timeframe.multiplier]+h1close[16*60/timeframe.multiplier]+h1close[17*60/timeframe.multiplier]+h1close[18*60/timeframe.multiplier]+h1close[19*60/timeframe.multiplier]
have = hsum/20
hvar = math.pow(math.abs(have-h1close[0*60/timeframe.multiplier]),2)+math.pow(math.abs(have-h1close[1*60/timeframe.multiplier]),2)+math.pow(math.abs(have-h1close[2*60/timeframe.multiplier]),2)+math.pow(math.abs(have-h1close[3*60/timeframe.multiplier]),2)+math.pow(math.abs(have-h1close[4*60/timeframe.multiplier]),2)+math.pow(math.abs(have-h1close[5*60/timeframe.multiplier]),2)+math.pow(math.abs(have-h1close[6*60/timeframe.multiplier]),2)+math.pow(math.abs(have-h1close[7*60/timeframe.multiplier]),2)+math.pow(math.abs(have-h1close[8*60/timeframe.multiplier]),2)+math.pow(math.abs(have-h1close[9*60/timeframe.multiplier]),2)+math.pow(math.abs(have-h1close[10*60/timeframe.multiplier]),2)+math.pow(math.abs(have-h1close[11*60/timeframe.multiplier]),2)+math.pow(math.abs(have-h1close[12*60/timeframe.multiplier]),2)+math.pow(math.abs(have-h1close[13*60/timeframe.multiplier]),2)+math.pow(math.abs(have-h1close[14*60/timeframe.multiplier]),2)+math.pow(math.abs(have-h1close[15*60/timeframe.multiplier]),2)+math.pow(math.abs(have-h1close[16*60/timeframe.multiplier]),2)+math.pow(math.abs(have-h1close[17*60/timeframe.multiplier]),2)+math.pow(math.abs(have-h1close[18*60/timeframe.multiplier]),2)+math.pow(math.abs(have-h1close[19*60/timeframe.multiplier]),2)
hdev = math.sqrt(hvar/20)
plot(have)
plot(have+hdev)
plot(have-hdev)

longCondition = ta.crossunder(close, ma3l)
if (longCondition) and close[1] &gt; (have[1]+hdev[1])
    strategy.entry(&quot;My Long Entry Id&quot;, strategy.long)

shortCondition = ta.crossover(close, ma3u)
if (shortCondition) and close[1] &lt; (have[1] -hdev[1])
    strategy.entry(&quot;My Short Entry Id&quot;, strategy.short)
</code></pre></div>



<p class="wp-block-paragraph">諸事情により非常にダサいコードになっています。プログラム慣れしている方はfor文などでやってみると良いでしょう。トレーディングビューの限界を感じます(計算時間上限にあたってしまいました)</p>



<p class="wp-block-paragraph">工夫して計算量を減らせれば何とかなるとは思うのですが、今回はしぶしぶこの形でやっています</p>



<p class="wp-block-paragraph">request.security()は任意の通貨、時間足、価格を取り出せます引数は（通貨ペア、”時間”、価格）で今回は(syminfo.tickerid,"60",close)としています。syminfo.tickeridは現在チャートで選択している通貨ぺアを指定できます。</p>



<p class="wp-block-paragraph">hsumでは1時間足の終値を20本分足しています。しかし、h1closeは各足にその足が所属する時間の終値が格納されています。（つまり1:15分も1:30分も1時の1時間足の終値を持つ）そのため、下位足ではsma等で指定できません。</p>



<p class="wp-block-paragraph">そこで、どの足から見ても1時間分前までは同じ値が入っているので、60/timeframe.multiplier(現在の時間足：15分足なら15が入る)で1時間のローソク足の数が入るようになっています。それを、淡々と20個足しています…　ダサい。</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="970" height="389" src="https://fp-shima.ne.jp/wp-content/uploads/2023/02/sdmath.png" alt="" class="wp-image-3109" srcset="https://fp-shima.ne.jp/wp-content/uploads/2023/02/sdmath.png 970w, https://fp-shima.ne.jp/wp-content/uploads/2023/02/sdmath-300x120.png 300w, https://fp-shima.ne.jp/wp-content/uploads/2023/02/sdmath-150x60.png 150w, https://fp-shima.ne.jp/wp-content/uploads/2023/02/sdmath-768x308.png 768w" sizes="auto, (max-width: 970px) 100vw, 970px" /><figcaption class="wp-element-caption">SDが標準偏差　nは期間　valiはi番目の終値、aveは期間の平均終値（MA)</figcaption></figure>



<p class="wp-block-paragraph">math.pow()はべき乗を指定できますa^2とは書けないので注意</p>



<p class="wp-block-paragraph">a<sup>2</sup>はmath.pow(a,2)となります。3乗なら(a,3)です。　math.abs()は絶対値を求める関数　今回は2乗ですからほんとは無くても良いですが、一応</p>



<p class="wp-block-paragraph">math.sqrt()は平方根を求めます√計算ですね。</p>



<p class="wp-block-paragraph">ここまで見てわかるように、計算結果を求める関数にはmath.がつきます。</p>



<p class="wp-block-paragraph">SDの計算式を愚直に実行しました…</p>



<p class="wp-block-paragraph">さて、肝心のストラテジーは1時間足の1σ以上かつ15分足(今回の場合)で-3σを下回ったらロング</p>



<p class="wp-block-paragraph">反対に1時間足の-1σ以下で15分足の+3σを上回ったらショートとしました。　なお、判定しやすいように、1時間足のσの判定はひとつ前の足で判定しています。</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="625" src="https://fp-shima.ne.jp/wp-content/uploads/2023/02/bolinst-1024x625.png" alt="" class="wp-image-3108" srcset="https://fp-shima.ne.jp/wp-content/uploads/2023/02/bolinst-1024x625.png 1024w, https://fp-shima.ne.jp/wp-content/uploads/2023/02/bolinst-300x183.png 300w, https://fp-shima.ne.jp/wp-content/uploads/2023/02/bolinst-150x92.png 150w, https://fp-shima.ne.jp/wp-content/uploads/2023/02/bolinst-768x469.png 768w, https://fp-shima.ne.jp/wp-content/uploads/2023/02/bolinst.png 1469w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">私はトレーディングビューに課金しているので、ディープバックテストというのが出来ます。</p>



<p class="wp-block-paragraph">今回の条件は15分足でも約20年で175回しか出ないレアケースですが、一応の黒字。　勝ちやすいという事でしょうか。　ちなみに1分足でも黒字でしたが、割愛します。ディープバックテストに興味がある人は是非課金してみてください。</p>



<a rel="noopener noreferrer" href="https://tradingview.go2cloud.org/aff_c?offer_id=2&amp;aff_id=20855&amp;file_id=292" target="_blank"><img loading="lazy" decoding="async" width="728" height="90" border="0" src="https://media.go2speed.org/brand/files/tradingview/2/728x90.jpg"></a><img loading="lazy" decoding="async" width="0" height="0" border="0" style="position:absolute;visibility:hidden;" src="https://tradingview.go2cloud.org/aff_i?offer_id=2&amp;file_id=292&amp;aff_id=20855">



<p class="wp-block-paragraph">今回はボリンジャーバンドでしたが、意外とトレンドが出てるのか、レンジ相場なのかがわかりやすい良い指標のように思えます。　組み合わせ次第では良い戦略も考えられると思いますよ！では、今回はこの辺で！</p>



<h2 class="wp-block-heading">おすすめFXアイテム</h2>



<p class="wp-block-paragraph">過去検証や分析はMT4かFT4、Trading viewがおすすめです。</p>



<p class="wp-block-paragraph">無料が良い人はMT4で、MT4を使わせてくれる口座を使用すると良いです。おすすめはFXTF</p>



<p class="wp-block-paragraph">ガチで過去検証をやりたい人はFT4、<a href="https://h.accesstrade.net/sp/cc?rk=0100kxwf00j59w"></a></p>



<p class="wp-block-paragraph">チャート分析に毎月課金してもいいよって人はTrading viewがおすすめです。無料もあります</p>



<a href="https://px.a8.net/svt/ejp?a8mat=3T0G8I+D15NSA+48D0+6AC5D" rel="nofollow">
<img loading="lazy" decoding="async" border="0" width="728" height="90" alt="" src="https://www28.a8.net/svt/bgt?aid=230128434788&wid=004&eno=01&mid=s00000019746001056000&mc=1"></a>
<img loading="lazy" decoding="async" border="0" width="1" height="1" src="https://www18.a8.net/0.gif?a8mat=3T0G8I+D15NSA+48D0+6AC5D" alt=""> <a rel="nofollow" href="//af.moshimo.com/af/c/click?a_id=1717521&amp;p_id=2360&amp;pc_id=5104&amp;pl_id=30913&amp;guid=ON"><img loading="lazy" decoding="async" width="300" height="250" style="border:none;" src="//image.moshimo.com/af-img/1739/000000030913.jpg"></a><img loading="lazy" decoding="async" width="1" height="1" style="border:none;" src="//i.moshimo.com/af/i/impression?a_id=1717521&amp;p_id=2360&amp;pc_id=5104&amp;pl_id=30913"> <a rel="noopener noreferrer" href="https://tradingview.go2cloud.org/aff_c?offer_id=2&amp;aff_id=20855&amp;file_id=292" target="_blank"><img loading="lazy" decoding="async" width="728" height="90" border="0" src="https://media.go2speed.org/brand/files/tradingview/2/728x90.jpg"></a><img loading="lazy" decoding="async" width="0" height="0" border="0" style="position:absolute;visibility:hidden;" src="https://tradingview.go2cloud.org/aff_i?offer_id=2&amp;file_id=292&amp;aff_id=20855">
]]></content:encoded>
					
					<wfw:commentRss>https://fp-shima.ne.jp/2023/02/21/pine15/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
