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

 
Alexey Viktorov:

もう一度言います。

トレーダーの行動ではなく、そのログ(ライン)を公開したことについて話しているのです。

例えば、ターミナルのログに注文の開始行とその最初の変更がないことは気にしないことにしよう...。

ブローカーのログに、この注文の履歴が残って いないのはなぜですか?その注文がうまくいったという記録はどこにあるのでしょうか?また、起動する前に修正されたのでしょうか?

なぜかメッセージに添付できない。

----------------------------

もう一つ、専門家に質問します。

ブローカーのmt4で、過去の日付の日報を再送信する技術的な可能性があれば教えてください。

例えば、2週間レポートを受け取っていない場合、レポートを再生成してトレーダーのEメールに送信することは可能でしょうか?

 
valeriy odintsov:

ログはあるのですが、なぜか投稿に添付できないのです。

メッセージにログを添付する必要はありません。

ブローカーのログは1行しか気にしてなかったんだ。保留中の注文の有効化を修正したもの。

 

方法を教えてください - MQL4で、下のTFの時に上のTFの値を取得する必要があります。

int start()
  {
   
     int    i,counted_bars=IndicatorCounted();
//---- check for possible errors
   if(ExtCountedBars<0) return(-1);
//---- last counted bar will be recounted
   if(ExtCountedBars>0) ExtCountedBars--;
   int pos;
   if(nBars==0) pos=Bars-ExtCountedBars-1;
   else  pos=nBars-ExtCountedBars-1;
   while(pos>=0)
     {
      double iDeltaPeiceMA_= 0;
      if (Variant>0) iDeltaPeiceMA_=iHigh(Symbol(),TF,pos) - iOpen(Symbol(),TF,pos);

     pos--;

     }

   return(0);
  
  }

 
-Aleks-:

方法を教えてください - MQL4で、下のTFの時に上のTFの値を取得する必要があります。

int start()
  {
   
     int    i,counted_bars=IndicatorCounted();
//---- check for possible errors
   if(ExtCountedBars<0) return(-1);
//---- last counted bar will be recounted
   if(ExtCountedBars>0) ExtCountedBars--;
   int pos;
   if(nBars==0) pos=Bars-ExtCountedBars-1;
   else  pos=nBars-ExtCountedBars-1;
   while(pos>=0)
     {
      double iDeltaPeiceMA_= 0;
      if (Variant>0) iDeltaPeiceMA_=iHigh(Symbol(),TF,pos) - iOpen(Symbol(),TF,pos);

     pos--;

     }

   return(0);
  
  }

iBarShift()関数の ヘルプを読む
 
Vitalii Ananev:
iBarShift()のヘルプを読む
pos変数の値であるdatetimeを 取得する必要があることがわかったのですが、どう すればいいのでしょうか?
 
-Aleks-:
変数posの値であるdatetimeを 取得する必要があることがわかったのですが、どのように すればよいのでしょうか?
pos変数にバー番号があれば、Time[pos]関数やiTime(Symbol(),Period(),pos)関数で このバーの時間値を取得することができます。
 
Vitalii Ananev:
pos変数にバー番号があれば、Time[pos]関数やiTime(Symbol(),Period() ,pos)関数でそのバーの時間の値を取得することができます。

そうなんですが、途中で棒グラフの値になってしまうのが解せません?

      if (Variant>0) iDeltaPeiceMA_=iHigh(Symbol(),TF,iBarShift(Symbol(),TF, Time[pos]))-iOpen(Symbol(),TF,iBarShift(Symbol(),TF, Time[pos]));

バーの最大値が表示されるのですが...。

そして、例えば15分ごとにバーの変化をキャッチする必要があるんです。

 
-Aleks-:

そうなんですが、途中で棒グラフの値になってしまうのが解せません?

      if (Variant>0) iDeltaPeiceMA_=iHigh(Symbol(),TF,iBarShift(Symbol(),TF, Time[pos]))-iOpen(Symbol(),TF,iBarShift(Symbol(),TF, Time[pos]));

バーの値が最大になるのですが...。

そして、例えば15分ごとに日替わりバーの変化をキャッチする必要があるんです。

何がしたいのか、よくわからない。間違っていたら訂正してください。N分ごとにその日の最大値を取得しますか?
 
Vitalii Ananev:
何がしたいのか、よくわからない。間違っていたら訂正してください。N分ごとにその日の最大値を取得しますか?
正解です。
 
-Aleks-:
そうですね。
あとは、一定時間後のiHigh(Symbol(),PERIOD_D1,0)の値を取ればいいだけです。しかし、過去数日の値をとれば、いつでも同じ値になる。
理由: