[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 427

 
costy_ >>:
Вернее int startBar =iBarShift(NULL,PERIOD_D1, iTime(NULL,PERIOD_D1, N),false); // N - номер бара от текущего момента на дневном тф =))


そんなややこしいトートロジーにしなくても...。

すでにあるのになぜiBarShiftでbar Nを検索するのか?

このバーの時間は、もちろん歴史があれば必ずあるのですが、歴史に穴が開いたり、週末の時間になったりするので、その時間がない場合も...。

 
keekkenen >>:


не нужно так усложнять и заниматься тавтологией..

зачем искать бар N через iBarShift, когда он и так есть ?

время по этому бару всегда есть, если конечно есть история, а вот по времени бара может и не быть, т.к. время может попасть на дыру в истории или время выходных..

笑 =))

iLowで60小節をループさせるだけ...。を1440で、それ以上です =))

 
costy_ >>:

Ржу нимагу =))

何を説明するんですか、私も笑いますよ。

 
keekkenen >>:

вся ваша проблема в постановке задачи, сформулируйте ее так чтобы понятно другим.. я честно так и не понял с какого по какое время нужно тестировать..

если нужно начать с 60 бара так и берите время с него

int startTime = iTime(NULL,PERIOD_D1, N); // N - номер бара от текущего момента на дневном тф



タスクステートメント:Expert Advisorがあり、Strategy Testerの最後の 40本のバーで 最適化したい、など。この40本のバーは、1時間足、4時間足、日足、その他の時間枠で表示することができます。ストラテジーテスターの動作:動作する時間間隔はテスターパネルで設定されます。このような動作時間の設定方法は、上記の課題である「40気圧の試験」を満たすものではありません。テスト時間を定義するのがテスターではなく(その能力が満たされていない)、コードそのもの であるようにExpert Advisorを変更する必要があるということです。

なぜなら、テスターにとって、N小節前の時刻は現在の時刻だからです。

 
ikatsko >>:

Постановка задачи: имеется советник, есть желание его оптимизировать на последних, например, 40-ка барах в тестере стратегий. Эти сорок баров могут быть на часовом, 4-х часовом, дневном или другом ТФ. Работает тестер стратегий: промежуток времени на котором он работае указывается на панели тестера. Этот способ задания времени работы не выполняет поставленной выше задачи - тест на 40-ка барах. Значит надо внести изменения в советника так, чтобы выполняя код не тестер определял время тестирования (его возможности не устраивают), а сам код.

Ваше предложение работать не будет, так как для тестера время, которое было N баров назад является текущим.

ああ、それは問題提起であり、どのフレームでも簡単に解決できることですが、EAに限ってはそうではありません。

if(Time[0]>iTime(0,1440,60))
функция
 
costy_ >>:

if(Time[0]>iTime(0,1440,60,false))

C U E R !!! しかし、3つのパラメータがあるようですが?datetime iTime( 文字列 symbol, int timeframe, int shift)

訂正します、興奮するのが早すぎました。現在時刻に対して、指定したバーが開く時刻(逆方向)を、現在時刻から計算します。すなわち、再び問題を解決することはできません。テスターの現在時刻からではなく、今日の(瞬間的な)バーからNバー分戻る必要がある




 
Optimatic ライブラリをテストしているので、EAを最適化していないことを祈ります。
 
ikatsko >>:

C У П Е Р ! ! ! Но у него вроде как 3 параметра? datetime iTime( string symbol, int timeframe, int shift)


すみません、メタエディタではなく、記憶で書いています。

 

このiTime(0,1440,60)の値はTime[0]から60本左になるので、この構文 if(Time[0]>iTime(0,1440,60)) は常に真を返すのではないかと思うのですが......。

テストは何を示しているのか?

 
costy_ >>:
Надеюсь это не оптимизация советника по ходу тестирования Библиотека Optimatic.

確認したところ、「それ」ではない。

前の文章は、私が考え直したものです(上図参照)。