iBarShiftのアナログ - ページ 7 1234567891011121314...17 新しいコメント Nikolai Semko 2018.04.04 06:28 #61 すべてのTFで最速で正しく動作するバージョンはこちらです。 int iBarShift3(const string Symb,const ENUM_TIMEFRAMES TimeFrame,datetime time) { static int Res=-1; static string LastSymb=NULL; static ENUM_TIMEFRAMES LastTimeFrame=0; static datetime LastTime=0; static int PerSec=::PeriodSeconds(LastTimeFrame); if(LastTimeFrame!=TimeFrame) PerSec=::PeriodSeconds(TimeFrame); if(TimeFrame<PERIOD_D1) time-=time%PerSec; if((time!=LastTime) || (Symb!=LastSymb) || (TimeFrame!=LastTimeFrame)) { Res=::Bars(Symb,TimeFrame,time,UINT_MAX); if(TimeFrame<PERIOD_D1) Res--; if(Res<0) Res=0; LastTime = time; LastSymb = Symb; LastTimeFrame=TimeFrame; } return(Res); } TF D1、W1、MN1の速度が低下する。 そして、異なるバージョンのレスポンスとその速度(2番目の数字、数字が小さいほど機能が速い)を明確に示すテストインジケータです バージョン3、4ともに正常に動作します。でも、3rdの方が速いんですよ。 CopyTimeを持つバリアントが最も遅い。これはMQL4で確認することができます(添付のインジケータを参照)。 私はすでに混乱してしまったので、異なる変種の作者を特定しません。 しかし、3つ目の最も有用な方法は、@fxsaberからの 80%です。少ししか手を加えていません。 ファイル: TestBarShift.mq5 16 kb TestBarShift.mq4 9 kb fxsaber 2018.04.04 06:40 #62 Nikolai Semko:オプション3、4ともに正常に動作します。でも、3が一番速いんです。CopyTimeの亜種は最も遅い。 トレーディング、自動売買システム、ストラテジーテストに関するフォーラム "トレーダー向けLifeHack: 定義にForEachを混ぜる(#define)" に関するディスカッション fxsaber さん 2018.02.14 11:58 ZZY 機能スピードの測定は、性能が重要視される環境で行うべき - Tester. Nikolai Semko 2018.04.04 06:45 #63 fxsaber: ここでは寸法はあまり重要ではありません。ロジックが最速であることがお分かりいただけると思います。 Aleksey Vyazmikin 2018.04.04 10:14 #64 Nikolai Semko:すべてのTFで最速で正しく動作するバージョンはこちらです。 TF D1、W1、MN1の速度が低下する。 そして、異なるバージョンのレスポンスとその速度(2番目の数字、数字が小さいほど機能が速い)を明確に示すテストインジケータです バージョン3、4ともに正常に動作します。でも、3rdの方が速いんですよ。 CopyTimeを持つバリアントが最も遅い。MQL4で確認することができます(添付のインジケータを参照)。 私はすでに混乱しているので、異なる変種の作者を示しているわけではありません。 しかし、3つ目の最も効果的なバリエーションは、@fxsaberの 80%です。少し手を加えただけです。あなたのインジケータにTFを追加しました。最初の2つのアルゴリズムは全く役に立ちません。 図中、現在のTFはH1であり、日割りで計算しています。 Aleksey Vyazmikin 2018.04.04 10:27 #65 Renat Akhtyamov: はい(ハイライト表示)-1 は、エラー関数が返す、そのようなバーは存在しないという1マイナス(明確化)である そこで、私の関数 も要改良 のに... ドキュメンテーション "注意"すること Bars() 関数を呼び出す際に指定したパラメータの時系列のデータがまだ端末に生成されていない場合、または関数呼び出しの瞬間に時系列のデータがトレードサーバーと同期されて いない場合、 関数は ゼロ値を返します。" ==== res==0の場合は、そのまま関数から-1をキャッチすることになります。 === だから、すべてうまくいくのです!それを利用してください。上のインジケータでは、この方法がいかに誤ったものであるかがよくわかります。 Vitaly Muzichenko 2018.04.04 10:53 #66 Nikolai Semko:すべてのTFで最速で正しく動作するバージョンはこちらです。 TF D1、W1、MN1の速度が低下する。 そして、異なるバージョンのレスポンスとその速度(2番目の数字、数字が小さいほど機能が速い)を明確に示すテストインジケータです バージョン3、4ともに正常に動作します。でも、3rdの方が速いんですよ。 CopyTimeを持つバリアントが最も遅い。MQL4で確認することができます(添付のインジケータを参照)。 すでに混乱しているので、さまざまな変種の作者を断定しているわけではありません。 しかし、3つ目の最も効果的なバリエーションは、@fxsaberの 80%です。ちょっとだけ手を加えただけです。iBarShift3 バリアントが正しく 動作しない。 Evgeniy Kvasov 2018.04.04 11:03 #67 これが私のバージョンです。ジュニアとシニアの両方のフレームに対応しているようです。スピードはiBarshift3より少し速いです。 int iBarShift(string symbol, ENUM_TIMEFRAMES timeframe, datetime time){.datetime t1 = TimeCurrent()+10000000;int ps = PeriodSeconds(timeframe)。double div = time/(double)ps;double mant = div - MathFloor(div);int ret = Bars(symbol, timeframe, (datetime)(time-(ps*mant)), t1)-1.Bars(symbol, timeframe, (datetime)(time-(ps*mant)), t1)-1;return(ret)です。} Aleksey Vyazmikin 2018.04.04 11:38 #68 Vitaly Muzichenko:iBarShift3 オプションが正しく 動作しない。正しく動作しない例を教えてください。 ということは、選択肢は4つしかない? Nikolai Semko 2018.04.04 12:20 #69 Vitaly Muzichenko:iBarShift3 の オプションが正しく 動作しない。ボキャブラリーは私たちのすべてです。 Vitaly Muzichenko 2018.04.04 12:32 #70 Nikolai Semko:ボキャブラリーは私たちのすべてです。ざっと確認したところ、1日以上動作している関数があり、代わりにiBarShift 3を代用したところ、EAが不正に動作するようになったそうです。それが、私の結論です。 私が使っているのはこちらです。 int iBarShift(string symbol,ENUM_TIMEFRAMES timeframe,datetime time,bool exact=false) { datetime LastBAR; if(!SeriesInfoInteger(symbol,timeframe,SERIES_LASTBAR_DATE,LastBAR)) { datetime opentimelastbar[1]; if(CopyTime(symbol,timeframe,0,1,opentimelastbar)==1) LastBAR=opentimelastbar[0]; else return(-1); } //--- if time > LastBar we always return 0 if(time>LastBAR) return(0); //--- int shift=Bars(symbol,timeframe,time,LastBAR); datetime checkcandle[1]; if(CopyTime(symbol,timeframe,time,1,checkcandle)==1) { if(checkcandle[0]==time) return(shift-1); else if(exact && time>checkcandle[0]+PeriodSeconds(timeframe)) return(-1); else return(shift); } return(-1); } 1234567891011121314...17 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
すべてのTFで最速で正しく動作するバージョンはこちらです。
TF D1、W1、MN1の速度が低下する。
そして、異なるバージョンのレスポンスとその速度(2番目の数字、数字が小さいほど機能が速い)を明確に示すテストインジケータです
バージョン3、4ともに正常に動作します。でも、3rdの方が速いんですよ。
CopyTimeを持つバリアントが最も遅い。
これはMQL4で確認することができます(添付のインジケータを参照)。
私はすでに混乱してしまったので、異なる変種の作者を特定しません。
しかし、3つ目の最も有用な方法は、@fxsaberからの 80%です。少ししか手を加えていません。
オプション3、4ともに正常に動作します。でも、3が一番速いんです。CopyTimeの亜種は最も遅い。
トレーディング、自動売買システム、ストラテジーテストに関するフォーラム
"トレーダー向けLifeHack: 定義にForEachを混ぜる(#define)" に関するディスカッション
fxsaber さん 2018.02.14 11:58
ZZY 機能スピードの測定は、性能が重要視される環境で行うべき - Tester.
ここでは寸法はあまり重要ではありません。ロジックが最速であることがお分かりいただけると思います。
すべてのTFで最速で正しく動作するバージョンはこちらです。
TF D1、W1、MN1の速度が低下する。
そして、異なるバージョンのレスポンスとその速度(2番目の数字、数字が小さいほど機能が速い)を明確に示すテストインジケータです
バージョン3、4ともに正常に動作します。でも、3rdの方が速いんですよ。
CopyTimeを持つバリアントが最も遅い。
MQL4で確認することができます(添付のインジケータを参照)。
私はすでに混乱しているので、異なる変種の作者を示しているわけではありません。
しかし、3つ目の最も効果的なバリエーションは、@fxsaberの 80%です。少し手を加えただけです。
あなたのインジケータにTFを追加しました。最初の2つのアルゴリズムは全く役に立ちません。
図中、現在のTFはH1であり、日割りで計算しています。
はい(ハイライト表示)
-1 は、エラー関数が返す、そのようなバーは存在しないという1マイナス(明確化)である
そこで、私の関数
も要改良
のに...
ドキュメンテーション
"注意"すること
Bars() 関数を呼び出す際に指定したパラメータの時系列のデータがまだ端末に生成されていない場合、または関数呼び出しの瞬間に時系列のデータがトレードサーバーと同期されて いない場合、 関数は ゼロ値を返します。"
====
res==0の場合は、そのまま関数から-1をキャッチすることになります。
===
だから、すべてうまくいくのです!それを利用してください。
上のインジケータでは、この方法がいかに誤ったものであるかがよくわかります。
すべてのTFで最速で正しく動作するバージョンはこちらです。
TF D1、W1、MN1の速度が低下する。
そして、異なるバージョンのレスポンスとその速度(2番目の数字、数字が小さいほど機能が速い)を明確に示すテストインジケータです
バージョン3、4ともに正常に動作します。でも、3rdの方が速いんですよ。
CopyTimeを持つバリアントが最も遅い。
MQL4で確認することができます(添付のインジケータを参照)。
すでに混乱しているので、さまざまな変種の作者を断定しているわけではありません。
しかし、3つ目の最も効果的なバリエーションは、@fxsaberの 80%です。ちょっとだけ手を加えただけです。
iBarShift3 バリアントが正しく 動作しない。
これが私のバージョンです。ジュニアとシニアの両方のフレームに対応しているようです。スピードはiBarshift3より少し速いです。
int iBarShift(string symbol, ENUM_TIMEFRAMES timeframe, datetime time){.
datetime t1 = TimeCurrent()+10000000;
int ps = PeriodSeconds(timeframe)。
double div = time/(double)ps;
double mant = div - MathFloor(div);
int ret = Bars(symbol, timeframe, (datetime)(time-(ps*mant)), t1)-1.Bars(symbol, timeframe, (datetime)(time-(ps*mant)), t1)-1;
return(ret)です。
}
iBarShift3 オプションが正しく 動作しない。
正しく動作しない例を教えてください。
ということは、選択肢は4つしかない?
iBarShift3 の オプションが正しく 動作しない。
ボキャブラリーは私たちのすべてです。
ボキャブラリーは私たちのすべてです。
ざっと確認したところ、1日以上動作している関数があり、代わりにiBarShift 3を代用したところ、EAが不正に動作するようになったそうです。それが、私の結論です。
私が使っているのはこちらです。