初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 876

 
Vitaly Muzichenko:

残念ながら、私はその記事に出会っていませんので、もしかしたらどなたかが教えてくれるかもしれませんね。

正しい設定価格が入力されないので、注文を設定することができません。ロットも同様です。

マウスで設定しました。

  • 価格の上をクリック+Ctrl - 売り指値
  • 価格以下をクリック+Ctrl -購入限度額
  • 上記価格+Ctrl+Shiftでクリック - 買い停止
  • 価格下をクリック+Ctrl+Shift - ストップ売り
BuyStopLimitとSellStopLimitをシフトすることも可能です。
 
Artyom Trishkin:

マウスで賭けているのです。

  • 価格の上をクリック+Ctrl - 売り指値
  • 価格以下をクリック+Ctrl -購入限度額
  • 上記価格+Ctrl+Shiftでクリック - 買い停止
  • 価格下をクリック+Ctrl+Shift - ストップ売り
また、BuyStopLimitとSellStopLimitをshifftで置くこともできます。

この記事https://www.mql5.com/ru/articles/62 のコントロールパネルはテスターで動作するのでしょうか(ボタンのみ)。

Создание активных панелей управления на MQL5 для торговли
Создание активных панелей управления на MQL5 для торговли
  • 2010.04.15
  • Евгений
  • www.mql5.com
Удобство имеет большое значение в работе, а тем более в работе трейдера, где скорость и точность решают многое. При подготовке терминала к работе каждый настраивает своё рабочее место максимально комфортно для себя, чтобы в максимально короткий срок можно было совершить анализ и войти в рынок. Но реальность такова, что разработчики не могут...
 
Sergey Savinkin:

この記事https://www.mql5.com/ru/articles/62 のコントロールパネルはテスターで動作するのでしょうか(ボタンのみ)。

では、試してみてください。何がそれを阻んでいるのでしょうか?

私自身、ビジュアライザーに保留中の注文をどのように入れているかを書いただけです。

 
Artyom Trishkin:

では、やってみましょう。何があなたを止めているのでしょうか?

ビジュアライザーで保留中の注文を設定する方法を簡単に書きました。

今、試しているところです。時間を無駄にしたくない、ロボットの動作にパネルは必要ない、テストのために必要なんだ。そのため、詳しく勉強しようとは思っていませんでした。

 
良い記事ですが、テスターでOnChartEvent() イベントが呼び出されず ボタンが動作しません。フォーラムで解決策を発見 https://www.mql5.com/ru/forum/42817/page2
Использование переменных в событии OnChartEvent индикатора в тестере
Использование переменных в событии OnChartEvent индикатора в тестере
  • 2016.02.25
  • www.mql5.com
При тестировании в эксперте можно обрабатывать пользовательские события с помощью функции OnChartEvent(), но в индикаторах эта функция в тестере не вызывается.
 

以下のコードをclose[i-1]からclose[i-2]に変更すると、Array of Rangeが発生するのはなぜか教えてください。MQL5の書籍に忠実に書かれたコードですが、価格が2セル以上シフトされるとバッファがオーバーランする理由が説明されていません。

  {
   int values_to_copy;
   int start;
   int calculated=BarsCalculated (iBands1_handle);

   
   if (calculated <=0)
   {
    return (0);
   }
   if (prev_calculated==0 || calculated!=bars_calculated)
   {
    start=1;
    if (calculated> rates_total) values_to_copy=rates_total;
    else values_to_copy=calculated;
    }
    else
    {
   start=rates_total-1;
   values_to_copy=1;
   }
   
   if(!FillArrayFrom_iBands1_handleBuffer(Base,Upper,Lower,iBands1_handle,values_to_copy)) return(0);

   for (int i=start; i <rates_total &&!IsStopped ();i++)
   {
    Print("C ", close[i-2]);
   }
 
clickaider:

以下のコードをclose[i-1]からclose[i-2]に変更すると、Array of Rangeが発生するのはなぜか教えてください。MQL5の書籍に忠実に書かれたコードですが、価格が2セル以上ずれたときにバッファからの引き出しが発生する理由が書かれていません。

私が理解している限りでは、インジケーターの話になっています。そこで、配列-時系列の「閉じる」にアクセス する2つのケースを考えてみよう。(1)"start"が "1 "と等しい場合にどうなるか、(2)"start"が "rates_total-1 "と等しい場合にどうなるか、です。

(1)の場合と(2)の場合で「close[i-2]」を実行した場合の「close」配列のインデックスを頭の中で計算してみてください。

 
Vladimir Karputov:

インジケーターの話だと理解しています。そこで、「近い時系列配列にアクセス する2つのケースを考えてみましょう。(1)"start"が "1 "と等しい場合にどうなるか、(2)"start"が "rates_total-1 "と等しい場合にどうなるか、です。

(1)の場合と(2)の場合で「close[i-2]」を実行した場合の「close」配列のインデックスを頭の中で計算してみてください。

ありがとうございます。確認したところ、start = 1の値に1より大きい数値を入れる必要がありました。デバッグしたところ、再計算の最初にまだ登場していないセルからclose配列で値を取ろうとしたときにエラーが発生することがわかりました。

 
始値、終値、ローソク足の長さで2次元配列を作ると、とても面白いことになりそうですね。私は高等数学、すなわち三重積分を使用して、この例に基づいてEAを 作成したい。xとyは価格と時間を知っていると仮定してみましょう、zを見つける - この場合、私はありません。
 
もう一つ質問ですが、このコードで終値が ラインより高くなるという条件を設定した場合(この条件は実際にはプログラム開始前とします)、コードはその通りに動作しますが、逆の条件、つまりコード開始前に異なる現在の条件を追加すると、デバッグ後にデータが正しく表示されなくなります。なぜこのような現象が起こるのか、アドバイスをお願いします。結局のところ、これは条件文の中での比較に過ぎないのですが、なぜこれがコードの性能に全く悪影響を与えないのでしょうか?
   for (int i = start; i < rates_total &&!IsStopped ();i++)
   {
    if(close[i] > Upper[i])
    Print("C ", close[i]);
    
例:もし
if(close[i] < Upper[i])

デバッグ結果は以下の通りです。

データは正しく進み、価格の更新と同じ速度で更新される

しかし、最初にそのような条件を設定すると

if(close[i] > Upper[i])

その場合、結果は正しくありません。

つまり、終値の値が現在の価格と一致しない


なぜそうなるのか、理解できない。

投稿 基本的なコードブロック
理由: