MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 443

 
Alexey Viktorov: 開閉時のズレ

Alexey!MT5は今日、全体的に饒舌になりましたね~解説にTPが重複しています。


 
STARIJ:

アレクセイありがとうございます!!!でも、どうやってチェック するんですか?古くて、デモ口座が新しいからかな?

注文のTP価格と終値の 差を_Pointで割って、注文コメントの項目と照合します。これは、まさに私たちが発見した方法です。ランダムな偶然の一致は、無限に安定して続くことはありえない。実際のアカウントでは、このようなスリッページはないのでしょうね。昔は持っていたけれども。実際のアカウントで計算していました。最初、終値がtpで、終値が緑でハイライトされていないことに気づきました。

 

こんにちは、助けてください。

いつでも、インジケーターの矢印があるバーの番号を知りたいのです。

この例では、矢印が10本目のバーにある場合にバッファを満たすようにしました。

int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//---
   if(rates_total<2) return(0);
   int limit=rates_total-prev_calculated;
   if(limit>1)
     {
      limit=rates_total-2;
      ArrayInitialize(BufferUP,EMPTY_VALUE);
      ArrayInitialize(BufferDN,EMPTY_VALUE);
     }
   for(int i=limit; i>=0; i--)
     {
      for(int il=i+1;il<=i+300;il++)
        {
         if(NormalizeDouble(iCustom(NULL,0,"Arrow v.3",0,il),Digits)!=EMPTY_VALUE
            )
           {
            num_buy=il;
            break;
           }
        }
      //
      if(num_buy==10)
        {
         BufferUP[i+1]=low[i+1]-distance*MyPoint;

        }

      for(int il=i+1;il<=i+300;il++)
        {
         if(NormalizeDouble(iCustom(NULL,0,"Arrow v.3",1,il),Digits)!=EMPTY_VALUE
            )
           {
            num_sell=il;
            break;
           }
        }
      if(num_sell==10)
        {
         BufferDN[i+1]=high[i+1]+distance*MyPoint;
         
         
        }

      Comment(num_buy,"num_sell",num_sell);
     }
//--- return value of prev_calculated for next call

   return(rates_total);
  }

どこが悪いのか?

 
mila.com: こんにちは、助けてください。
インジケーターの矢印があるバーの番号をいつでも知りたい。
この例では、矢印が10本目のバーにある場合にバッファを満たすようにしました。
どこが悪いのか?

通常、確認するときは、実行して結果を見ます。これはコードの一部に過ぎません。ここではすべてが非常に小さく、見づらい - 私のエディターではもっと大きいです

if(NormalizeDouble(iCustom(NULL,0,"Arrow v.3",0,il),Digits)!=EMPTY_VALUE)
{
    num_buy=il;
    break;  // Это выход из цикла. Остальные бары лишаются чести быть просмотренными. Ошибка здесь?
}
 

インジケータでデータをファイルに保存する方法について教えてください。

RSIの代わりに ウィリアムズのパーセントレンジ


//| エキスパートスタート機能

//+------------------------------------------------------------------+

int start()

{

//----

int iRSI。

iRSI=FileOpen("File.txt",FILE_CSV|FILE_WRITE, '\t');

//------------------------------------------------//

//-------------------------------------------------//

if(iRSI>0)

{

FileWrite(iRSI, [0]);

FileClose(iRSI)です。

}

//----

return(0)です。

}

 
STARIJ:

ここはすべてが浅いんです。

ブラウザでスケールを変更するオプションがあります )

STARIJ:
Ошибка здесь?


残念ながら、エラーはこれだけではありません。

現在のバーから正しい値がコメントに表示され、現在 num_buy 9

なぜ履歴に条件がないのですか?

if(num_buy==10)

確認したところ、矢印がバー10にあるときにEAがポジションをオープンして いる

for(int il=1;il<=300;il++)
        { 
        if(NormalizeDouble(iCustom(NULL,0,"Arrow v.3",0,il),Digits)!=EMPTY_VALUE)
            
           {
            num_buy=il;
            break;
           }
        }
        if(num_buy==10)
           {
            B_OrderSend();
           }

矢印がバー10にあるとき、インジケータにポイントを置くにはどうしたらいいですか?

 
mila.com:

ブラウザには、スケールを変更するオプションがあります )


残念ながら、エラーはこれだけではありません。

コメントには、現在のバーから正しい値、現在 num_buy 9 が表示されます。

なぜ履歴に条件がないのですか?

EAにチェックを入れ、矢印がバー10にあるときにポジションを 開く。

矢印がバー10にあるとき、インジケータにポイントを置くにはどうしたらいいですか?

最初に空白でないインジケータの値が見えたら、すぐにループを中断する。だから、10に届かないんです。

 
Artyom Trishkin:

つまり、最初に空でないインジケータ値に遭遇したら、すぐにここでループを解除するのです。だから、10に届かないんです。

STARIJの 推奨により、インジケーターのブレークを削除しました。

はまだチャート上のポイント、およびコメントでは、第三および第四の矢印の数を書き込みますが、最初と第二(現在の日付に最も近い)が表示されません。

 
mila.com:

インジケーターでは、STARIJが 推奨するように、ブレークを削除しました。

待ったなし

でも、Expert Advisorに残したままなんですね。そして、その効果は?インジケーターの1点目を探し出し、...毀す

 
Artyom Trishkin:

しかし、参議院は取り残された。では、どんな効果があるのでしょうか?インジケーターの1点目を探し出し、...毀す

Expert Advisorを作成し、可能性を確認したところ、正しく開くが、インジケータでは、直近の2つのインジケータバッファ「Arrow v.3」の値が全く表示されない。