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

 
Vladimir Karputov:

トレードクラスのCsymbolInfoか、SymbolInfoXXXXのようなシステム関数か、どちらか一方を使用するのがよいでしょう。

はい、ありがとうございます。また、はっきりさせてもいいですか。

エラーにつながるのか、それとも単なるコーディング文化の推奨なのか?

 
vladzeit:

なるほど、ありがとうございます。も明らかにしていいでしょうか。

これはエラーにつながるのでしょうか、それとも単なるコーディング文化の推奨なのでしょうか?

誰もヴィネガーを使うことを禁じてはいない、BUT:時間が経つと変数名で混乱しないか、変数のデータを更新したかしなかったか覚えていないのか?

 
Vladimir Karputov:

ビネガーを使うことを誰も禁じていない BUT:時間が経つと変数名で混乱し、変数内のデータを更新したかどうか覚えていないのでは?

ありがとうございます、そうですか)

 
Vladimir Karputov:

同じ時間枠の複数の時系列を比較する必要がある場合は、MqlRates 型の配列で作業し、CopyRatesを使用してこの配列を埋めて ください。

MqlDateTime 構造体に時刻を格納するのが便利です→TimeToStructを使って 時刻をdatetimeからMqlDateTime 構造体に変換します。

これで、例1は次のようになります。

図解での回答ありがとうございました。しかし、疑問もある...。

1.とは何ですか?コンテキストのみ見つかりました。

int count=(InpBarTime<10)?10:InpBarTime+1;

2.MT4で[h]エントリーを定義するエントリーエレメントはどれですか?

//--- example 1
// if(Period()<=PERIOD_H4 && TimeHour(Time[h])==0 && TimeMinute(Time[h])==0)
   MqlDateTime SDateTime;
   TimeToStruct(rates[InpBarTime].time,SDateTime); // Converts a value of datetime type into a structure variable MqlDateTime
   if(Period()<=PERIOD_H4 && SDateTime.hour==0 && SDateTime.min==0)
     {

     }
  
 
kopeyka2 さん

図解での回答ありがとうございました。しかし、疑問もある...。

1.その意味するところは?のみ見つかりました :: コンテキスト

int count=(InpBarTime<10)?10:InpBarTime+1;

-->

これは省略された形です。すべて同じです。

int count=0;
if(InpBarTime<10)
   count=10;
else
   count=InpBarTime+1;



2.MT4で[h]エントリーを定義するエントリーエレメントはどれですか?

//--- example 1
// if(Period()<=PERIOD_H4 && TimeHour(Time[h])==0 && TimeMinute(Time[h])==0)
   MqlDateTime SDateTime;
   TimeToStruct(rates[InpBarTime].time,SDateTime); // Converts a value of datetime type into a structure variable MqlDateTime
   if(Period()<=PERIOD_H4 && SDateTime.hour==0 && SDateTime.min==0)
     {

     }

-->

InpBarTimeだと思います。いかがでしょうか?

 

どういう意味ですか?のみ見つかりました :: コンテキスト

int count=(InpBarTime<10)?10:InpBarTime+1;


https://www.mql5.com/ru/docs/basis/operators/ternary

この演算子は最近流行っていて、よく使われるようになりました。

Документация по MQL5: Основы языка / Операторы / Условный оператор ?:
Документация по MQL5: Основы языка / Операторы / Условный оператор ?:
  • www.mql5.com
В качестве первого операнда – "выражение1" – может быть использовано любое выражение, результатом которого является значение типа bool. Если результат равен , то выполняется третий операнд – "выражениеЗ". Второй и третий операнды, то есть "выражение2" и "выражениеЗ", должны возвращать значения одного типа и не должны иметь тип void...
 
Vladimir Karputov:
kopeyka2 さん

図解での回答ありがとうございました。しかし、疑問もある...。

1.その意味するところは?のみ見つかりました :: コンテキスト

-->

これは省略された形です。すべて同じです。



2.MT4で[h]エントリーを定義するエントリーエレメントはどれですか?

-->

InpBarTimeだと思います。いかがでしょうか?

今のところ、普通の感覚ではほとんど考えていないのですが......。ジャックを手にBLONDINGしています)))

InpBarTime=3;と グローバルに宣言していますが、MT4では[h]は通常ループ(for limit ......)でここからここまで となります。

#property script_show_inputs
//--- input parameters
int InpBarTime=3; // Bar where we compare the time
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()

Market_Sessions Indicatorを発見 そこには面白いデザインが・・・。 残りの頭の中の内的対話をそこに落とし込もうと・・・)))

ファイル:
 
kopeyka2:

今は、普通の感覚ではほとんど考えられませんが......。ジャックを手にした金髪です)))

そして、このようにグローバルに書きましたね。

Market_Sessions Indicatorを発見 そこには面白い構造が・・・。 残りの頭の中の内部対話をそこに落とし込もうと・・・))))

あ、すみません、そのように書くべきでした。

//--- input parameters
input int InpBarTime=3; // Bar where we compare the time
 
Fast528:

どういう意味ですか?のみ見つかりました :: コンテキスト


https://www.mql5.com/ru/docs/basis/operators/ternary

この演算子は最近流行しており、ますます頻繁に使用されるようになりました。

OK !!!


ちゃんと理解できたかな?

//if(Period()<=PERIOD_H4 && TimeHour(Time[h])==0 && TimeMinute(Time[h])==0)
   MqlDateTime SDateTime;
   TimeToStruct(rates[InpBarTime].time,SDateTime); // Converts a value of datetime type into a structure variable MqlDateTime
   if(Period()<=PERIOD_H4 && SDateTime.hour==0 && SDateTime.min==0)
     {

     }
// А ЕСЛИ ПО ЦИКЛУ ?
int InpBarTime=10;
for(int a=0; a<=InpBarTime; a++) 
 {
//if(Period()<=PERIOD_H4 && TimeHour(Time[h])==0 && TimeMinute(Time[h])==0)
   MqlDateTime SDateTime;
   TimeToStruct(rates[InpBarTime].time,SDateTime); // Converts a value of datetime type into a structure variable MqlDateTime
   if(Period()<=PERIOD_H4 && SDateTime.hour==0 && SDateTime.min==0)
     {

     }
Запустив InpBarTime по циклу будем иметь цикл, но в структуре. Правильно?
 
kopeyka2:

OK !!!


うまくいったかな?

うまくいかなかったんですね。動作例をあげました。実行してください。MQL4風の 文章は忘れてください。コードの勉強を始め、ヘルプを見る。

理由: