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

 

MT4でExcelのような構造(+と-でデータを折りたたんだり広げたりする)の表を作ることは可能ですか?その場合、どこで読むことができるのでしょうか?


 

皆さん、こんにちは!私はコードを勉強しているところです。エラーが発生した、修正方法がわからない。


int CountTrades(int type, int magic)

{

int count=0;

for(int i=OrdersTotal()-1;i>=0;i-)

{

if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES))

{

if(OrderSymbol()==Symbol() && (OrderType()==type||type==-1) &&)

(OrderMagicNumber()==magic||magic==-1))

count++です。

}

}

を返す(カウント)。


欠けている部分を強調しました。


エラーは以下の通りです。

予想される「-」オペランド

")" - 想定外のトークン

「i" - 未宣言の識別子


最初のエラーでiの後にマイナスをつけたのが気に食わないみたいです。なんとなくハイフンでくくったほうがいいのかも?

チュートリアルを見ながら一文字一文字やってみたのですが、コードがコンパイルできません。

あなたの力が必要です。

 
Falx:

皆さん、こんにちは!私はコードを勉強しているところです。バグがある、修正方法がわからない。

2つのマイナスと機能を閉じるブラケットがない。
 
Aleksey Vyazmikin:
マイナスが2つ、関数を閉じる括弧がない。

ありがとうございました。全て解決しました!効いてますね〜。

 

2つのdatetimeを時間単位で比較する必要があったので、このような方法をとりました。

string TimeCompare = StringSubstr(TimeToString(MyLastNewsTime[i],TIME_DATE|TIME_MINUTES),0,13);
string TimeCompare1 = StringSubstr(TimeToString(MyLastNewsTime1[i],TIME_DATE|TIME_MINUTES),0,13);
if(TimeCompare != TimeCompare1)
...

うまくいったのですが、もしかしたらこれが一番正しい方法ではないのでしょうか?プログラマーは何を言っているのか?

 
Nauris Zukas:

2つのdatetimeを時間単位で比較する必要があったので、このような方法をとりました。

うまくいったのですが、もしかしたらこれが一番正しい方法ではないのでしょうか?プログラマーは何を言っているのか?


if(TimeHour(MyLastNewsTime[i])!=TimeHour(MyLastNewsTime1[i]))
 {
 }
 
Nikolay Ivanov:

説明不足だったかもしれませんが、2つの日付を正確な時間で探す必要があります(分と秒は重要ではありません)。 時間での比較しかできないのです。

 
Nauris Zukas:

説明不足だったかもしれませんが、2つの日付を正確な時間(分と秒は重要ではありません)で検索する必要があります。


日付を検索したり、2つの日付の時間を比較する必要がありますか?

 
Nikolay Ivanov:

日付の検索や、2つの日付の時間の比較は?

正確な時間(分と秒は重要ではありません)までの日付を見つける必要があります。

 
Nikolay Ivanov:

日付を探すか、2つの日付の時間を比較する必要があります。

CopyTimeの方がうまくいくのでしょうか?

こちらです。

int  CopyTime(
   string           symbol_name,     // имя символа
   ENUM_TIMEFRAMES  timeframe,       // период PERIOD_H1
   datetime         start_time,      // с какой даты
   int              count,           // сколько копируем 1
   datetime         time_array[]     // массив для копирования времени открытия
   );

時間を文字 列に変換して比較することは、良い選択肢ではありません。

CopyTime - Доступ к таймсериям и индикаторам - Справочник MQL4
CopyTime - Доступ к таймсериям и индикаторам - Справочник MQL4
  • docs.mql4.com
Функция получает в массив time_array исторические данные времени открытия баров для указанной пары символ-период в указанном количестве. Необходимо отметить, что отсчет элементов от стартовой позиции ведется от настоящего к прошлому, то есть стартовая позиция, равная 0, означает текущий бар. При копировании заранее неизвестного количества...