<?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>プログラミング - FP嶋の資産形成学</title>
	<atom:link href="https://fp-shima.ne.jp/category/asset-management/kyouiku-kosodate/programming/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=6.9.4</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/category/asset-management/kyouiku-kosodate/programming/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>EA自作企画第8弾！ざっくり勝てそうな戦略で…<a href="https://fp-shima.ne.jp/2025/05/14/ea7/">前回</a>までにEA自体の設定を行いました。今回は本当に簡単なロジックでエントリーするようにします。</p>



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



<p>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>こんな感じで実装してみました。</p>



<p>全体のコードです。設定も少しいじりました。</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>まぁ増えてはいますが、思いのほか伸びませんね！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>過去検証や分析はMT4かFT4、Trading viewがおすすめです。</p>



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



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



<p>チャート分析に毎月課金してもいいよって人は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>EA自作企画第7弾！準備がまだ！って人は先に準備しましょう！こっちの<a href="https://fp-shima.ne.jp/2024/08/24/ea1/">ページを参照</a>してね！</p>



<p>こちらのサイトのようなところへ行けば、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><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>損切しない！</p>



<p>スワップが増える方向にだけエントリー</p>



<p>似たようなところでエントリーしない！</p>



<p>最大ポジション数を取った時にレバレッジ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-fe9cc265 wp-block-group-is-layout-flex">
<p>年利　1%　→　月利　0.08%</p>



<p>　　　2%　→　　　　0.17%</p>



<p>　　　5%　→　　　　0.41%</p>



<p>　　10％　→　　　　0.8%</p>



<p>　　30%　→　　　　2.21%</p>



<p>　　<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>100%（2倍)　→　　　5.95%</p>



<p>200%（3倍)　→　　　9.59%</p>
</div>
</div></div>



<p>以下のようにしてみました。</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>ポジションをチェックする関数を入れました。</p>



<p>見てみましょう。</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>ここまで読んでくれているとある程度分かってくることもあると思うので、新規なところを説明します。</p>



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



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



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



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



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



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



<p><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>過去検証や分析はMT4かFT4、Trading viewがおすすめです。</p>



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



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



<p>チャート分析に毎月課金してもいいよって人は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>EA自作企画第6弾！準備がまだ！って人は先に準備しましょう！こっちの<a href="https://fp-shima.ne.jp/2024/08/24/ea1/">ページを参照</a>してね！</p>



<p>こちらのサイトのようなところへ行けば、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>今回は最初に作った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>損切しない！</p>



<p>スワップが増える方向にだけエントリー</p>



<p>似たようなところでエントリーしない！</p>



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



<p>最初に作った一方向のための設定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>一番わかりやすい、ロングショートのオーダーを送る直前に入れました。複数のオーダー判定をするような場合はもっと上位で判断したほうが良いでしょうけれど、ここが一番わかりやすいかなーという事で、入れました。</p>



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



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



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



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



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



<p><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>過去検証や分析はMT4かFT4、Trading viewがおすすめです。</p>



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



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



<p>チャート分析に毎月課金してもいいよって人は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>EA自作企画第5弾！準備がまだ！って人は先に準備しましょう！こっちの<a href="https://fp-shima.ne.jp/2024/08/24/ea1/">ページを参照</a>してね！</p>



<p>こちらのサイトのようなところへ行けば、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><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>損切しない！</p>



<p>スワップが増える方向にだけエントリー</p>



<p>似たようなところでエントリーしない！</p>



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



<p>今回は似たようなところでエントリーしない！をやってみます！前回、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>さて、今回はエントリー判断をポジション数と、ゾーンにいるかどうかだけで判断しています。</p>



<p>具体的に見ていきましょう</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>boolでEntryJudge()という関数を定義しました。この際、()にint　tradeTypeとしたので、整数を引数として取る必要があります。boolで宣言したので、returnはtrueかfalseですね。</p>



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



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



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



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



<p>if()内で条件判定</p>



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



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



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



<p>すぐ下の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>ここでは、さっき数えたcurrentPositionsがextern設定したmaxPositionより小さいかを調べています。小さくなかったらfalseが返ってきます。</p>



<p>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>コメントに直接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>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>MAXPOSITONの4つとったので、この後はず～っとfalseでエントリーされません！</p>



<p>これで、ポジションをとるコードはかけましたね！<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>過去検証や分析はMT4かFT4、Trading viewがおすすめです。</p>



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



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



<p>チャート分析に毎月課金してもいいよって人は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>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>こちらのサイトのようなところへ行けば、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><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>損切しない！</p>



<p>スワップが増える方向にだけエントリー</p>



<p>似たようなところでエントリーしない！</p>



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



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



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



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



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



<p>レバレッジ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>いきなり少し長いですね…</p>



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



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



<p>を宣言しました。この関数は｛｝内の計算を行って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>AccountBalance（）関数はMQLにある関数で、現在の残高を教えてくれます。この値をaccountBalanceにdoubleで宣言して格納しています。</p>



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



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



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



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



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



<p>実際の計算は以下のようになります。</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>USDJPY　</p>



<p>残高　=　10000ドル</p>



<p>最小ロット　0.01</p>



<p>必要証拠金　4000/Lot</p>



<p>accountBalance = AccountBalance()　=10000</p>



<p>totalRiskAmount = accountBalance * risk/100　risk=10から　1000</p>



<p>eachPositionRisk = totalRiskAmount/maxPosition　maxポジションは4なので　250</p>



<p>minLot = MarketInfo(NULL,MODE_MINLOT)　=0.01</p>



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



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



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



<p>()内に,で区切って表示させたいものを格納すると、画面に表示してくれます。ここでは文字列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>見づらいかもしれませんが、ちゃんと左上にlotSize0.06が表示されていますね！</p>



<p>続きはまた<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>過去検証や分析はMT4かFT4、Trading viewがおすすめです。</p>



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



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



<p>チャート分析に毎月課金してもいいよって人は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>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>こちらのサイトのようなところへ行けば、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>今回から、ついに、実際に作業…に入れると良いのですが、プログラミングなんてやったことないよ…って人も多くいるでしょう。一応、今は義務教育に組み込まれるって話ではありますが、2025年時点でこのサイト見ている人は、プログラミングなんて～って世代かと思います。</p>



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



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



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



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



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



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



<p>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>上の図の赤い丸のところをクリックすると…</p>



<p>↓</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>こんな感じの画面になるはず！</p>



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



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



<p>では、実際に触ってみましょう。</p>



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



<p>新規作成をクリックします。</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>こんな画像が出てくるので、エキスパートアドバイザ（テンプレート）を選択して、次へ</p>



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



<p>ここでは、OnewayTraderとします。片方にしか入らない予定なので。</p>



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



<p>それ以外には特に操作無く、次へを選択して、完了で大丈夫です。</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>そうすると、上記のようなコードが出てきます。多少違うと思いますが、それは、EAの名称や、著作者名。1，2，3の注釈だと思います。注釈に関してはこちらで説明用に入れたものなので…</p>



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



<p></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>っと、その前に基本的な話。</p>



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



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



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



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



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



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



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



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



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



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



<p>で、宣言するときは、その言葉が一体どんなものなのか。ってのを先に教えてあげる必要があります。代表的なものを見てみましょう。コンピューターに分かってもらうためのお約束です。</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>int　○○　　→　○○は整数です</p>



<p>double　△△　→　△△は小数点以下も持っています</p>



<p>bool　□□　→　□□はtrueかfalseです</p>



<p>string　●●　→　●●は文字列です</p>



<p>datetime　▲▲　→　▲▲は時間を示しています</p>



<p>void　××　→　××っていってるけど見えません！</p>
</div></div>



<p>ここらへんは、実際にプログラミングしていかないとわからないかもしれません。ちょっと戻って考えてみると</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>OnInit()だけ、intで宣言されて、return()がついていますよね？つまり、intで宣言しているので、returnとしてINIT_SUCCEEDEDってのが出てきます。で、このINIT_SUCCEEDEDてやつは整数なんです。ほんと、整数には見えないんですけど、MQL的には整数として存在しています。</p>



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



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



<p>何となくわかりましたか？</p>



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



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



<p>「<strong>extern</strong>」</p>



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



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



<p>という事で、さっそく、やってみましょう！</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>損切しない！</p>



<p>スワップが増える方向にだけエントリー</p>



<p>似たようなところでエントリーしない！</p>



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



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



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



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



<p>では、実際に動くかどうか試したいので、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>その後、ＭＴ４で赤丸のところを、ポチっとすると下の方になんか出るんですけど、隠れているので、ターミナルってのとテスターって境目をクリックして引っ張ると大きくなります。</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>EA選択プルダウンで今作ったEAを選択</p>



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



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



<p>過去検証や分析はMT4かFT4、Trading viewがおすすめです。</p>



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



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



<p>チャート分析に毎月課金してもいいよって人は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>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>ちなみに<a href="https://fp-shima.ne.jp/2020/01/09/fx-ea/" data-type="post" data-id="1204">EA</a>に関しては、他の記事でも触れています。売られてもいますが、高額で、元を取るまでにかかる時間を考えると、結構な元手が無いと大変です。</p>



<p>なお、こちらのサイトのようなところへ行けば、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><mark style="background-color:rgba(0, 0, 0, 0)" class="has-inline-color has-light-green-color"><strong>儲かるEAが良い！</strong></mark></p>



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



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



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



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



<p>そこで、以下のような条件にしたいと思います。</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>損切しない！</p>



<p>スワップが増える方向にだけエントリー</p>



<p>似たようなところでエントリーしない！</p>



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



<p>さて、EAの条件は決まりました。</p>



<p>次は利益の目標について考えます</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>さて、どのくらい儲けたいですか<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>ただ、投資となると、それなりに目標設定が必要だと思います。</p>



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



<p>目標なので、ここでは年利50%にしてみます！まぁ難しそう！</p>



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



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



<p>ってことで、年利は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-fe9cc265 wp-block-group-is-layout-flex">
<p>年利　1%　→　月利　0.08%</p>



<p>　　　2%　→　　　　0.17%</p>



<p>　　　5%　→　　　　0.41%</p>



<p>　　10％　→　　　　0.8%</p>



<p>　　30%　→　　　　2.21%</p>



<p>　　50%　→　　　　3.44%</p>



<p>100%（2倍)　→　　　5.95%</p>



<p>200%（3倍)　→　　　9.59%</p>
</div>
</div></div>



<p>具体的に目標が見えてきましたね！</p>



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



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



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



<p>150円　×　4,000通貨　×レバレッジ10　=　残高 60,000円</p>



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



<p>年利50%のとき、月あたりの利率は3.44%です。　6万円の場合は</p>



<p>6万円　×　3.44%　=　2,064円</p>



<p>1000通貨だと、月に206.4pips取る必要がありますね。　</p>



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



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



<p>こんな感じで、<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>過去検証や分析はMT4かFT4、Trading viewがおすすめです。</p>



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



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



<p>チャート分析に毎月課金してもいいよって人は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>投資したい！けど株価見たり、業績調査したり、情報調べたり…そんな時間ないよ！勝手にお金だけ増えればいいのに！そんな人の為にあるのが<span class="fontcolor" style="color:#ff3333;">ＥA(エキスパートアドバイザー）</span>



<p>自動で為替を売買してくれるプログラムです。</p>



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



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



<p>なお、こちらのサイトのようなところへ行けば、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>



<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>当然と言ったらそれまでですが、プログラミングするうえでは、パソコン必須です。パソコン無い人は買いましょう。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>これなんかだとoffice入って新品で、十二分な性能なのに3万円位です。良い時代になりました…私が学生時代は、これに、はるかに劣る性能で20万円位しましたからね…（泣）</p>



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



<p>したがって、今でも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>おすすめは、FXTFか楽天です。FXTFは過去データが公開されているので、EAを作るうえでは便利ですが、EAでの売買には手数料が取られる点が残念なところ。</p>



<p>特に制約が無ければ、<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>色々すっとばして、楽天で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>この青いところをクリックすると、別ページに飛んで、丁寧な解説があるので、それに沿って行けばOK</p>



<p></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>ポチポチしていくと楽天MT4が立ち上がってこんな画面になります。</p>



<p>左の真ん中やや下位にあるナビゲーター、口座ってところから口座番号と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>続いて、MT4画面上部のツール→オプションと選ぶと上図が出てきますので、チャートを選択し、バーを両方99999…にしておきましょう。特にこだわりが無ければこうしておくと良いです。重くなると嫌！って人はいじらなくてもOK</p>



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



<p>EAを作るうえで重要なのがバックテスト。</p>



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



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



<p>zipファイルなんで適当に解凍しといてください。</p>



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



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



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



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



<p>5分足を作りたいときは5とします。</p>



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



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



<p>過去検証や分析はMT4かFT4、Trading viewがおすすめです。</p>



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



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



<p>チャート分析に毎月課金してもいいよって人は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/09/29/wordpress_error/</link>
					<comments>https://fp-shima.ne.jp/2023/09/29/wordpress_error/#respond</comments>
		
		<dc:creator><![CDATA[FPshima]]></dc:creator>
		<pubDate>Fri, 29 Sep 2023 14:16:00 +0000</pubDate>
				<category><![CDATA[pineスクリプト]]></category>
		<category><![CDATA[R]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[教育・子育て・スキルアップ]]></category>
		<category><![CDATA[ワードプレス]]></category>
		<guid isPermaLink="false">https://fp-shima.ne.jp/?p=3406</guid>

					<description><![CDATA[今回は、当サイトを編集する際に、ヘルスステータスが悪化してますよって通知出たので、その時の対応の話 永続オブジェクトキャッシュを使用してください なんのこっちゃ・・・って思いますが、要はサーバーからサイト情報を素早く読み込めるようにしてくれ…]]></description>
										<content:encoded><![CDATA[
<p>今回は、当サイトを編集する際に、ヘルスステータスが悪化してますよって通知出たので、その時の対応の話</p>



<a href="https://px.a8.net/svt/ejp?a8mat=3T0G8I+CQFUWA+4SM6+5Z6WX" rel="nofollow">
<img loading="lazy" decoding="async" border="0" width="468" height="60" alt="" src="https://www27.a8.net/svt/bgt?aid=230128434770&wid=004&eno=01&mid=s00000022371001004000&mc=1"></a>
<img loading="lazy" decoding="async" border="0" width="1" height="1" src="https://www17.a8.net/0.gif?a8mat=3T0G8I+CQFUWA+4SM6+5Z6WX" alt="">



<h2 class="wp-block-heading"><strong>永続オブジェクトキャッシュを使用してください</strong></h2>



<p>なんのこっちゃ・・・って思いますが、要はサーバーからサイト情報を素早く読み込めるようにしてくれってこと。その為の改善方法にはプラグインを入れたり、テーマをいじったり…様々あるようですが、今回は使用しているdiverというテーマの「子テーマ」をいじる方法で解決しました。</p>



<p>解決しました。とは書いていますが、実際は表示されなくなるだけで、永続オブジェクトキャッシュ設定したわけではありません…</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="797" height="612" src="https://fp-shima.ne.jp/wp-content/uploads/2023/09/eizoku.png" alt="" class="wp-image-3407" srcset="https://fp-shima.ne.jp/wp-content/uploads/2023/09/eizoku.png 797w, https://fp-shima.ne.jp/wp-content/uploads/2023/09/eizoku-300x230.png 300w, https://fp-shima.ne.jp/wp-content/uploads/2023/09/eizoku-150x115.png 150w, https://fp-shima.ne.jp/wp-content/uploads/2023/09/eizoku-768x590.png 768w" sizes="auto, (max-width: 797px) 100vw, 797px" /></figure>



<p>上記はワードプレスのヘルプにあった説明。</p>



<h4 class="wp-block-heading">子テーマ</h4>



<p>人によってはテーマを買っていると思います。私は「Diver」というテーマを利用しています。</p>



<p>テーマには元となるデータの親テーマと、こちらで色々といじっても良いように、子テーマがあります。</p>



<p>いじるときは必ず子テーマをいじりましょう。</p>



<h3 class="wp-block-heading">実際の作業</h3>



<p>以下のように操作しました</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="498" src="https://fp-shima.ne.jp/wp-content/uploads/2023/09/kote-ma-1024x498.png" alt="" class="wp-image-3409" srcset="https://fp-shima.ne.jp/wp-content/uploads/2023/09/kote-ma-1024x498.png 1024w, https://fp-shima.ne.jp/wp-content/uploads/2023/09/kote-ma-300x146.png 300w, https://fp-shima.ne.jp/wp-content/uploads/2023/09/kote-ma-150x73.png 150w, https://fp-shima.ne.jp/wp-content/uploads/2023/09/kote-ma-768x374.png 768w, https://fp-shima.ne.jp/wp-content/uploads/2023/09/kote-ma-1536x747.png 1536w, https://fp-shima.ne.jp/wp-content/uploads/2023/09/kote-ma.png 1663w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>外観　→　テーマファイルエディタ　を選択します</p>



<figure class="wp-block-image aligncenter size-large"><img loading="lazy" decoding="async" width="1024" height="490" src="https://fp-shima.ne.jp/wp-content/uploads/2023/09/kote-ma2-1024x490.png" alt="" class="wp-image-3410" srcset="https://fp-shima.ne.jp/wp-content/uploads/2023/09/kote-ma2-1024x490.png 1024w, https://fp-shima.ne.jp/wp-content/uploads/2023/09/kote-ma2-300x143.png 300w, https://fp-shima.ne.jp/wp-content/uploads/2023/09/kote-ma2-150x72.png 150w, https://fp-shima.ne.jp/wp-content/uploads/2023/09/kote-ma2-768x367.png 768w, https://fp-shima.ne.jp/wp-content/uploads/2023/09/kote-ma2-1536x734.png 1536w, https://fp-shima.ne.jp/wp-content/uploads/2023/09/kote-ma2.png 1667w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p>出てきたページで矢印のところを操作</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">
<ol class="wp-block-list">
<li><strong>編集するテーマを選択　子テーマ　_child　</strong></li>



<li><strong>テーマファンクションを選ぶ</strong></li>



<li><strong>枠下の呪文を唱える</strong></li>



<li><strong>ファイルを更新する</strong></li>
</ol>
</div></div>



<div class="hcb_wrap"><pre class="prism line-numbers lang-php" data-lang="PHP"><code>add_filter(&#39;site_status_should_suggest_persistent_object_cache&#39;,&#39;__return_false&#39;);</code></pre></div>



<p>フィルターを加えるのですが、結論としては、解決していないですね。表示されないようにしただけです。</p>



<p>レンタルサーバー側で何らかの対応がきっとされる…と信じてます。</p>



<p>有効な方法は…今後に期待…</p>



<h3 class="wp-block-heading">ページキャッシュが検出されず、サーバのレスポンスが遅くなっています。</h3>



<p>こちらはプラグインで対応しました。</p>



<p>プラグインで使ったのは「<strong>WP Fastest Cache</strong>」</p>



<p>以下のように設定します。</p>



<figure class="wp-block-image aligncenter size-full"><img loading="lazy" decoding="async" width="800" height="777" src="https://fp-shima.ne.jp/wp-content/uploads/2023/09/fastestcache.png" alt="" class="wp-image-3412" srcset="https://fp-shima.ne.jp/wp-content/uploads/2023/09/fastestcache.png 800w, https://fp-shima.ne.jp/wp-content/uploads/2023/09/fastestcache-300x291.png 300w, https://fp-shima.ne.jp/wp-content/uploads/2023/09/fastestcache-150x146.png 150w, https://fp-shima.ne.jp/wp-content/uploads/2023/09/fastestcache-768x746.png 768w" sizes="auto, (max-width: 800px) 100vw, 800px" /></figure>



<p>上記設定にしてSubmitすればOK</p>



<p>こちらはちゃんと対応できているはず。</p>



<p>ヘルスステータスで警告が出なければ、対応終了です。</p>



<p>また、何かあれば更新いたします。</p>



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



<p>過去検証や分析はMT4かFT4、Trading viewがおすすめです。</p>



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



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



<p>チャート分析に毎月課金してもいいよって人は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/09/29/wordpress_error/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Rといえば、apply系関数！表計算的な事が簡単に出来ますよ！</title>
		<link>https://fp-shima.ne.jp/2023/08/27/r007/</link>
					<comments>https://fp-shima.ne.jp/2023/08/27/r007/#respond</comments>
		
		<dc:creator><![CDATA[FPshima]]></dc:creator>
		<pubDate>Sat, 26 Aug 2023 15:09:59 +0000</pubDate>
				<category><![CDATA[pineスクリプト]]></category>
		<category><![CDATA[R]]></category>
		<category><![CDATA[プログラミング]]></category>
		<category><![CDATA[教育・子育て・スキルアップ]]></category>
		<guid isPermaLink="false">https://fp-shima.ne.jp/?p=3365</guid>

					<description><![CDATA[今回は、R上のデータを計算する方法のうち、apply系と呼ばれる表計算が出来るものを紹介します。 apply系の種類 apply 行列・データフレームに対し、各行、各列で演算 tapply データフレームの指定した値でグループ化して演算 l…]]></description>
										<content:encoded><![CDATA[
<p>今回は、R上のデータを計算する方法のうち、apply系と呼ばれる表計算が出来るものを紹介します。</p>



<a href="https://px.a8.net/svt/ejp?a8mat=3T0G8I+CQFUWA+4SM6+5Z6WX" rel="nofollow">
<img loading="lazy" decoding="async" border="0" width="468" height="60" alt="" src="https://www27.a8.net/svt/bgt?aid=230128434770&wid=004&eno=01&mid=s00000022371001004000&mc=1"></a>
<img loading="lazy" decoding="async" border="0" width="1" height="1" src="https://www17.a8.net/0.gif?a8mat=3T0G8I+CQFUWA+4SM6+5Z6WX" alt="">



<h2 class="wp-block-heading">apply系の種類</h2>



<figure class="wp-block-table"><table><tbody><tr><td>apply</td><td>行列・データフレームに対し、各行、各列で演算</td></tr><tr><td>tapply</td><td>データフレームの指定した値でグループ化して演算</td></tr><tr><td>lapply</td><td>リストに対して演算。結果もリスト</td></tr><tr><td>sapply</td><td>リストに対して演算。結果がベクトル</td></tr><tr><td>mapply</td><td>複数リストまたはベクトルに対して関数を適用</td></tr><tr><td></td><td></td></tr><tr><td></td><td></td></tr></tbody></table></figure>



<p>例を見ていきましょう。xdataは以前に作ったデータです。</p>



<div class="hcb_wrap"><pre class="prism line-numbers lang-cpp" data-lang="C++"><code>a&lt;-apply(xdata,1,mean)　#　引数の2番目に1とすると行に対して演算
&gt; head(a)　#　head()は先頭の6個のデータを呼び出せる。データが大きい時に便利。（,x）で数値指定すれば表示数を変更可能
2023-07-24 06:03:00 2023-07-24 06:05:00 2023-07-24 06:06:00 2023-07-24 06:09:00 
           141.7675            141.6825            141.6868            141.6965 
2023-07-24 06:10:00 2023-07-24 06:11:00 
           141.6975            141.6962 

b &lt;- apply(xdata,2,var)　#　2を設定すると列に対して演算　この場合分散を求めている。
&gt; b
    open     high      low    close 
2.510861 2.497637 2.524620 2.511231 

c &lt;- c(1,2,3,4,5,2,3,4,5,6,7,8,9,1,2)　#　長さ15の数値
d &lt;- rep(c(&quot;a&quot;,&quot;b&quot;,&quot;c&quot;),5)　#　長さ15にするために、rep()でa,b,cの3つのグループを5回繰り返す
tapply(c, d, mean)　#　ｃの並びをdグループに分けて、それぞれの平均を求める。
  a   b   c 
4.6 3.8 4.0 
#　今回はベクトル同士でやっていますが、データフレームなどでも長さが一緒であれば抜き出してまとめられます

a &lt;- c(1,2,3)
b &lt;- c(2,3,4)
c &lt;- c(3,4,5)
tlist &lt;- list(a,b,c) # リストを作りました
&gt; lapply(tlist,mean)　#　リストの平均値を求めて　リストで結果が戻る
[[1]]
[1] 2

[[2]]
[1] 3

[[3]]
[1] 4
&gt; sapply(tlist,mean)　#　リストの平均値を求めて　ベクトルで結果が戻る
[1] 2 3 4

#mapply用に関数を作る
#　function(引数,・・・)｛計算内容｝で自作関数を作ることが出来る

my_func &lt;- function(x,y){　#　自作関数の引数の書き方を決定
+   z &lt;- x-y　　　　　　　　#引数を用いた計算内容を定義
+   return(z)　　　　　　　#　計算結果を表示
+ }　　
&gt; my_func(1,2)　#　今回はmy_func(x,y)という関数に、引数2つで差を取る関数を作った
[1] -1

result &lt;- mapply(my_func,xdata$high,xdata$low)　#　自作関数をxdataのhighとlowを引数として適用
&gt; head(result,10)　#　10個目までのデータを確認
 high  &lt;NA&gt;  &lt;NA&gt;  &lt;NA&gt;  &lt;NA&gt;  &lt;NA&gt;  &lt;NA&gt;  &lt;NA&gt;  &lt;NA&gt;  &lt;NA&gt; 
0.165 0.005 0.020 0.021 0.023 0.005 0.005 0.002 0.053 0.014 
&gt; head(xdata$high-xdata$low,10)　#　直接計算させたものを見てみる
                     high
2023-07-24 06:03:00 0.165
2023-07-24 06:05:00 0.005
2023-07-24 06:06:00 0.020
2023-07-24 06:09:00 0.021
2023-07-24 06:10:00 0.023
2023-07-24 06:11:00 0.005
2023-07-24 06:12:00 0.005
2023-07-24 06:13:00 0.002
2023-07-24 06:14:00 0.053
2023-07-24 06:15:00 0.014　#　計算結果は一致！

result &lt;- mapply(my_func,xdata[,2],xdata[,3])　#　こういう書き方でもOK!
&gt; head(result,10)
 high  &lt;NA&gt;  &lt;NA&gt;  &lt;NA&gt;  &lt;NA&gt;  &lt;NA&gt;  &lt;NA&gt;  &lt;NA&gt;  &lt;NA&gt;  &lt;NA&gt; 
0.165 0.005 0.020 0.021 0.023 0.005 0.005 0.002 0.053 0.014 </code></pre></div>



<p>色々な計算が出来ます。平均(mean)、合計(sum)、分散(var)、最大値(max)、最小値(min)、標準偏差(sd)、要約(summary)、テーブル(table)等です。</p>



<p>基本的にはfor文で行や列ごとに計算~ってするより早いと言われています。　後は単純にfor文よりコードが短くなります。</p>



<p>今回はこの辺で</p>



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



<p>過去検証や分析はMT4かFT4、Trading viewがおすすめです。</p>



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



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



<p>チャート分析に毎月課金してもいいよって人は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/08/27/r007/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
