MQL5でCopyTicksRange()が正しく動作しない。 - ページ 6 1234567 新しいコメント RusPro 2021.09.20 10:59 #51 Alexey Viktorov #:ある機能が思い通りに動かず、開発者がそれを知っていながら直さないことをバグとは呼ばない...ということを2年で理解できたはずです。サムズアップ、クールな教育を受けたプログラマーたち......。 つまり、自分が販売するインジケーターのバグを、わかっていても3年間直さなければ、それはバグとは呼ばないということです 手工芸品を購入する動機付けとなる良いアプローチです。 prostotrader 2021.09.20 14:52 #52 RusPro #:int_max = 2147483647 実際には、INT_MAX* sizeof(double)のメモリ部分を すぐに取り出して、静的なと書いたかもしれません。double d[INT_MAX]; - と同じに なります。ArraySize()関数の操作の違いだけで、メモリのリール全体を一度に取得することができます。 これはあくまで一例 であり、すべてを文字通りに受け取るべきではありません。 必要な分だけ "吸い取る"! RusPro 2021.09.20 15:14 #53 prostotrader #:文字通りの意味ではなく、あくまで例として捉えて ください必要な分だけ "つまみ食い"! 決して悪気があったわけではないのですが、すみません。ただ、この例では、可能な限り最大値をつかんでいます:)) fxsaber 2021.09.20 15:40 #54 RusPro #:の結果がマイクロ秒単位で表示されます。 表の中で2より大きい結果を示すセルは1つもないんだ。 RusPro 2021.09.20 22:27 #55 fxsaber #:表の中で2より大きい結果を示すセルは1つもないんだ。 コードを変更したのですか? OnCalculate()からOnInit()にすべてのコードを移動し、一度だけ実行するようにしました。 ちょうど出力に刻みがなく、OnCalculateが起動時に一度だけ呼ばれるようになりました。 fxsaber 2021.09.21 08:38 #56 RusPro #:OnCalculate()からOnInit()にコードを移動し、一度だけ実行するようにした。 そういう展開になるんですね。興味深いことに、OnCalculateではすべてがうまくいくようになります。コンパイラは、繰り返しをうまく処理するようです。 CopyTicksについては、staticを使用する目的がわかりません。 RusPro 2021.09.22 10:11 #57 MetaQuotes #: 修正しました。本日よりベータ版を公開します。 今日の日付は?) fxsaber 2021.09.22 10:29 #58 RusPro #:今日は何の日ですか?) ターミナル64.exeのみを b3042にアップデートしてください。MetaEditor64.exeは まだアップデート しないでください。 MetaQuotes 2021.09.22 11:18 #59 RusPro #:今日は何の日?) ベータ版はMetaQuotes-Demoに毎日掲載されていますが、デモサーバーでのテストを優先しているため、ヘルプメニューから確認しても、常に利用できるわけではありません。 Sergei Patrushev 2022.03.13 09:00 #60 int m1,min1; datetime start,end; MqlTick arr_ticks[]; MqlDateTime now1; void OnTick() { TimeTradeServer(now1); if(min1 != now1.min) { if(m1==0){start=TimeTradeServer();} m1+=1; if(m1==4) { end = TimeTradeServer(); ZeroMemory(arr_ticks); int len1 = CopyTicksRange(_Symbol,arr_ticks,COPY_TICKS_INFO,start,end); Print(__FUNCTION__," start: ", start," end: ",end," len: ",len1); ArrayPrint(arr_ticks); m1=0; }//old 3 min min1 = now1.min; }//New Minute }//end OnTick CopyTicksRange () の説明には、この演算子はミリ秒単位で時間をカウントすると書かれています。 を配列で収集することを思いついたのですが、なぜかうまくいっています。 1234567 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
ある機能が思い通りに動かず、開発者がそれを知っていながら直さないことをバグとは呼ばない...ということを2年で理解できたはずです。
サムズアップ、クールな教育を受けたプログラマーたち......。
つまり、自分が販売するインジケーターのバグを、わかっていても3年間直さなければ、それはバグとは呼ばないということです
手工芸品を購入する動機付けとなる良いアプローチです。
int_max = 2147483647
実際には、INT_MAX* sizeof(double)のメモリ部分を すぐに取り出して、静的な
と書いたかもしれません。
double d[INT_MAX]; - と同じに なります。
ArraySize()関数の操作の違いだけで、メモリのリール全体を一度に取得することができます。
これはあくまで一例 であり、すべてを文字通りに受け取るべきではありません。
必要な分だけ "吸い取る"!
文字通りの意味ではなく、あくまで例として捉えて ください
必要な分だけ "つまみ食い"!
決して悪気があったわけではないのですが、すみません。ただ、この例では、可能な限り最大値をつかんでいます:))
の結果がマイクロ秒単位で表示されます。
表の中で2より大きい結果を示すセルは1つもないんだ。
表の中で2より大きい結果を示すセルは1つもないんだ。
コードを変更したのですか?
OnCalculate()からOnInit()にすべてのコードを移動し、一度だけ実行するようにしました。 ちょうど出力に刻みがなく、OnCalculateが起動時に一度だけ呼ばれるようになりました。
OnCalculate()からOnInit()にコードを移動し、一度だけ実行するようにした。
そういう展開になるんですね。興味深いことに、OnCalculateではすべてがうまくいくようになります。コンパイラは、繰り返しをうまく処理するようです。
CopyTicksについては、staticを使用する目的がわかりません。
修正しました。本日よりベータ版を公開します。
今日の日付は?)
今日は何の日ですか?)
ターミナル64.exeのみを b3042にアップデートしてください。MetaEditor64.exeは まだアップデート しないでください。
今日は何の日?)
ベータ版はMetaQuotes-Demoに毎日掲載されていますが、デモサーバーでのテストを優先しているため、ヘルプメニューから確認しても、常に利用できるわけではありません。
CopyTicksRange () の説明には、この演算子はミリ秒単位で時間をカウントすると書かれています。
を配列で収集することを思いついたのですが、なぜかうまくいっています。