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

 
Roman:

mql5インジケーターのフックがあるかどうか教えてください。2つの表示プロパティを設定する場合。

そして、何らかの方法で、異なる出力、それぞれを独自のマッピングプロパティにバインドします。

はい、あります。しかし、それはmql5専用であり、Marketでは使えないだろう。インディケータでは、2番目の名前を持つインディケータを検索し、それが存在しない場合は、 ChartIndicatorAdd() を実行する必要があります。

 
Alexey Viktorov:

ありますね。しかし、mql5用のみで、Marketでは使えません。インディケータでは、2つ目のインディケータ名を持つインディケータを検索し、存在しない場合は ChartIndicatorAdd() を実行する必要があります。

2つのインジケーターがありますね。メインチャートとサブウインドウの同時ダブルレンダリングプロパティを持つものではありません。

しかし、2つの指標を同時に立ち上げるというバリエーションとして、それは可能でしょう。しかし、そのデータは、1つの指標からではなく、2つの指標から得る必要がある。

 
Artyom Trishkin:

なるほど......これは2つの指標ですね。メインチャートとサブウィンドウに同時に描画するデュアルプロパティを持つものではありません。

ただし、2種類のインジケータを同時に起動するバリエーションとしては、それでいいと思います。しかし、そのデータは、1つの指標からではなく、2つの指標から得る必要がある。

そうです、メインチャートとサブウィンドウに、一つのコードから描画するという意味でした。

アルチョム・トリシキン

サブウインドウからメインチャートに自分で描いた絵を使う。

そこに引っかかりがある。サブウィンドウからグラフへの描画はどのように行うのですか?
例があれば、よりわかりやすいと思います。

 

問題が発生したので助けてください。試した計算では、マージンの計算に役立たなかったのが理解できなかった。からの配合を使用しています

h ttps://www.mql5.com/ru/docs/constants/environment_state/marketinfoconstants?#enum_symbol_calc_mode

しかし、問題は残った。

Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация об инструменте
Документация по MQL5: Константы, перечисления и структуры / Состояние окружения / Информация об инструменте
  • www.mql5.com
Для получения текущей рыночной информации служат функции SymbolInfoInteger(), SymbolInfoDouble() и SymbolInfoString(). В качестве второго параметра этих функций допустимо передавать один из идентификаторов из перечислений ENUM_SYMBOL_INFO_INTEGER, ENUM_SYMBOL_INFO_DOUBLE и ENUM_SYMBOL_INFO_STRING соответственно. Некоторые символы (как правило...
 

このコードをMQL4からMQL5へ変換する方法を教えてください。

datetime  bar_day   = TimeDay(Time[Bars - 1]);

?

いろいろなバリエーションを試しましたが、そのうちのひとつがこちらです。

int bars=Bars;
//+------------------------------

   datetime  bar_day   = TimeDayMQL4(iTimeMQL4(NULL,0,(bars - 1)));

いろいろ試してみましたが、以下はMQL4互換ライブラリで作成したTimeDayMQL4とiTimeMQL4 関数のコードです。

int TimeDayMQL4(datetime date)
  {
   MqlDateTime tm;
   TimeToStruct(date,tm);
   return(tm.day);
  }

datetime iTimeMQL4(string symbol,int tf,int index)
{
   if(index < 0) return(-1);
   ENUM_TIMEFRAMES timeframe=TFMigrate(tf);
   datetime Arr[];
   if(CopyTime(symbol, timeframe, index, 1, Arr)>0)
        return(Arr[0]);
   else return(-1);
}

しかし、それでもうまくいかず、1970を取得・・・。

 
Sayberix :

このコードをMQL4からMQL5へ変換する方法を教えてください。

?

簡単なことです。この記事をフォローする: https://www.mql5.com/ru/articles/81

Переход с MQL4 на MQL5
Переход с MQL4 на MQL5
  • www.mql5.com
Данная статья, построенная в форме справочника по функциям MQL4, призвана помочь переходу с MQL4 на MQL5. Для каждой функции языка MQL4 приведено описание и представлен способ ее реализации на MQL5, что позволит вам значительно ускорить перевод своих программ с MQL4 на MQL5. Для удобства функции разбиты на группы, как в документации по MQL4.
 
jaffer wilson:

簡単なことです。記事をフォローする: https://www.mql5.com/ru/articles/81

記事を更新しました。試してみたが、うまくいかない。変数にこの値が表示されます: D'1970.01.01 00:00:24'

TimeMonthMQL4とTimeYearMQL4も使っています。
 
jaffer wilson:

問題が発生したので助けてください。試した計算では、マージンの計算に役立たなかったのが理解できなかった。からの配合を使用しています

h ttps://www.mql5.com/ru/docs/constants/environment_state/marketinfoconstants?#enum_symbol_calc_mode

しかし、問題は残りました。

解明できていないんです......残念ながらノーヒントです。

 
Roman:

そうです。ポイントは、チャート上とサブウインドウに、同じコードから描画することでした。

ここでヒヤリとすることがあります。サブウィンドウからチャートに描画するには?
例があれば、より理解しやすいと思います。

チャート上に表示する方法は2つあります。

  1. グラフィックオブジェクト
  2. キャンバス地

いずれにせよ、データウィンドウには 表示されないが、これらのデータを取得できるバッファを追加で作成する必要がある。 メインウィンドウからデータを取得するために使用できる値は、バッファに書き込まれることになる。そうすれば、1つのインジケーターからサブウィンドウとメインチャートの両方のデータを受け取ることが可能になります。

あるいは、まず各バーの計算データをすべてこのバッファに書き込み、このデータでメインウィンドウのメインチャートを構築する方が便利です。どのようにプロットするかは、あなた次第です。私ならKanvasを選びます。

 
Sayberix:

記事を更新しました。試してみたが、うまくいかない。D'1970.01.01 00:00:24'という変数にこの値が表示されます。

TimeMonthMQL4とTimeYearMQL4も使っています。

ジャファーが引用した記事より

void OnStart()
{
   datetime Time[];
   int count = 2;        //сколько копируем 
   ArraySetAsSeries(Time, true);
   CopyTime(_Symbol, PERIOD_D1, 0, count, Time); 
   
   Print(Time[1]); //1-окрытие вчерашнего дня, 0-открытие текущего дня
}