どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 616

 
昨日のバーの00:00から23:59までの数字を今日の任意の時間に(もちろんテスターで)正しく取得する方法がわかりません。教えてください。
削除済み  
001:
昨日のバーの00:00から23:59までの数字を今日の任意の時間に(もちろんテスターで)正しく取得する方法がわかりません。教えてください。

iBarShiftは もうご覧になりましたか?
 
pu6ka:

iBarShiftは もうご覧になりましたか?

いや、ここにはもっと倒錯した疑問がある、それではどうにもならない。

 
001:
昨日のバーの00:00から23:59までの数字を、今日のいつでも正しく確認できる方法がわかりません(もちろんStrategy Testerで)。教えてください。
                 //+------------------------------------------------------------------+
                 //|                                                       Отскок.mq4 |
                 //|                                              FOReignEXchange2008 |
                 //|                                          forexsignal2008.ucoz.ru |
                 //+------------------------------------------------------------------+
                   #property copyright "FOReignEXchange2008"
                   #property link      "FOReignEXchange@bk.ru"

int День,i,k;

int start()
{

i=0;k=0;

День=TimeDay(iTime(NULL,0,0));

while (i<=1440)
      {
      if (TimeDay(iTime(NULL,0,i))==(День-1) && k==0) 
         {
         k=i;
         Alert("",k);
         }
      i++;
      }
return;
}

//+------------------------------------------------------------------+

テスターでは、前日の最後のバーの数字がだいたいこのように計算されます。あとは自分で作ってください。

 
FOReignEXchange:

テスターでは、前日の最後のバーの数字がだいたいこのように計算されます。あとは自分でやってください。


ありがとうございました。明日から試してみます。今日は頭が働かない。適切な質問ができていなかった。今日、昨日の最初の小節と最後の小節の数字を知りたいのです。すべてを知る必要はないのです。
 
001:

ありがとうございます。明日、試してみます。今日は頭が働かないんだ適切な質問ができていなかった。今日、昨日の最初の小節と最後の小節の数字を知る必要がある。すべてを知る必要はないのです。

TimeCurrentテスターはよく拾います。ですから、似たようなバリアントで何かできるはずです(以下のコードでスクリプトを作ってみて、結果を確認してみてください)。

   datetime LastServerTime=TimeCurrent();
   long tms=LastServerTime%86400;
   int NumberFirstBar=iBarShift(NULL,0,LastServerTime,false);
   datetime TimeNumberFirstBar=iTime(NULL,0,NumberFirstBar);   
   datetime TimeLastBar=TimeNumberFirstBar-(datetime)tms;
   
   int NumberLastBar=iBarShift(NULL,0,TimeLastBar,false);
   
   Comment("NumberLastBar = ",NumberLastBar);

実は、ここに とてもいい記事があるんです。MT5用ですが、MT4でも有用な情報があります。

削除済み  
001:
昨日のバーの00:00から23:59までの数字を今日の任意の時間に(もちろんテスターで)正しく取得する方法がわかりません。教えてください。


こうすることで、どの日の始まりでも最初のバーのインデックスを見つけることができます。

     int n = 1;                                           // индекс дня, в данном случае 1 - вчерашний день
datetime DayTime = iTime(NULL, PERIOD_D1, n);             // Начало дня "n" в секундах
     int cb = iBarShift(NULL,0,DayTime);                  // Получим на текущем ТФ индекс 1-го бара


この指数がわかれば、前日の最後のバーの指数を計算することができます。

 
pu6ka:


このようにして、任意の日の最初のバーのインデックスを見つけることができます。


この指数を知っていれば、前日の最後のバーの指数を1加算して求めることができる。


リアル口座やデモ口座でのみコードを使用する場合は、そちらのバージョンの方が便利です。 ただし、ストラテジーテスターで問題が発生する可能性があります。

追伸:そのため、FOReignEXchangeと 私は他の選択肢を挙げています。

 
皆さん、ありがとうございました。さあ、仕事だ。
削除済み  
DiPach:

もし、そのコードがリアル口座やデモ口座でのみ使用されるのであれば、あなたのようなバリアントがより便利です。 しかし、ストラテジーテスターでは、使い方に問題がある場合があります。

追伸:そのため、FOReignEXchangeと 私は他の選択肢を示しました。


おそらく。私はこのコードをインジケータに使用しましたが、そこで失敗することはありませんでした。いろいろなバリエーションを試させてあげてください。