エラー、バグ、質問 - ページ 661

 

文字列の長さ(文字列型)に内部的な制限があるのか、空きメモリがどのくらいあって、どのくらい詰め込めるのか。

// OpenCLのプログラム作成に関する質問です。

また、FAQには記載がありませんが、ドキュメントに正しい答えを明記してください。

 
MetaDriver:

文字列の長さ(文字列型)に内部的な制限があるのか、空きメモリがどのくらいあって、どのくらい詰め込めるのか。

// OpenCLのプログラム作成に関する質問です。

また、FAQに記載がないため、ドキュメントに正しい答えを明記してください。

改行文字を除けば32768文字弱で、ざっくり言うと32000文字が入ることになります。

そして、メモリが足りるまでの改行で、少なくとも私は2 000 000を文字列に押し込みました、私の手はさらにショベルに疲れました :)

 
Urain:

改行を 除けば、32768文字弱、およそ32000文字になる。

が、ラインフィードで、とりあえずメモリは十分、少なくとも200万は文字列に突っ込んだので、腕が疲れてしまった :)

ありがとうございます!最初は200万で十分です。

// ただただ困惑:文字列翻訳が一体どう関係するのか?ただの記号であり、他のものよりも悪い/良いということはない。

// いや、信じるよ。ただ、いつもは物事の仕組みがわかるのに、ここではちょっと不思議というか、びっくりするというか......。

// 何で測ったんですか? ファイル機能じゃなかったんですか?

:)

 
MetaDriver:

ありがとうございます! 嬉しいです! 200万あれば、まず大丈夫です。

// ただただ困惑:文字列翻訳が 一体どう関係するのか?ただの記号であり、他のものよりも悪い/良いということはない。

// いや、信じるよ。ただ、いつもは物事の仕組みがわかるのに、ここではなんだか不思議で驚いてるんだ......。

// ひょっとして、ファイル関数じゃない?

:)

文字列の内部表現である可能性が高く、情報を格納するための新しい(追加の)配列のアロケーションが続くと思われます。

正確にはわかりませんので、MQさんに聞いてください。

SZYはもちろん、ファイルにダンプした制御のために、最初に文字列を形成し、Lenを介してその長さをチェックし、まあ、私は今覚えていない、それは長い時間前だったが、すべてが順番にあった。

ZZZIと私は、保存された文字列から10文字を読んで、〜32700以上の変換せずに、変数に書き込まないことを確認しました。

 
Urain:

これは内部の文字列表現である可能性が高く、情報を格納するための新しい(追加の)配列が後に続くと思われます。

正確にはわかりませんので、MQさんに聞いてください。

まあ、もちろんファイルへのリセットを制御するためですが、まず文字列を形成し、Lenを通してその長さをチェックし、まあ、今は覚えていませんが、ずいぶん前のことですが、すべてが順当なものだったのです。

ZZZYで保存した文字列から10文字を読み出し、32700以上の翻訳を行わないと変数に書き込めません。

ニコラスさん、ありがとうございます。



--

同志ストリンゴは 何を言っているのだろう?

 
最大行長は 1073741816文字ですが、x86(32bit)ではその文字数分のメモリがありません。
 
Valmars:
私たちは、時間内にコンピュータの時間を同期させる必要があるだけで、それ以外の場合は、取引を失うこともあります。

それだ、わかったぞ。その時、私はあなたを誤解していました。))常に全履歴を正しく取得するために、以下のような同期を行うことができます。

//+------------------------------------------------------------------+
//| МАКСИМАЛЬНОЕ_ВРЕМЯ                                               |
//+------------------------------------------------------------------+
datetime ChoiceTimeFunction()
  {
   datetime synchro=NULL;
//---
   synchro=(datetime)fmax((double)TimeTradeServer(),(double)TimeLocal());
//---
   if(!MQL5InfoInteger(MQL5_TESTING) || !MQL5InfoInteger(MQL5_OPTIMIZATION) || !MQL5InfoInteger(MQL5_VISUAL_MODE))
     {
      Print("synchro_time: ",synchro,"; TimeTradeServer(): ",TimeTradeServer(),"; TimeLocal(): ",TimeLocal()); return(synchro);
     }
//---
   synchro=TimeCurrent()+Milliseconds_Ahead;
//---
   Print("synchro_time tm+ml_ahead: ",synchro,"; TimeCurrent(): ",TimeCurrent(),"; Milliseconds_Ahead: ",Milliseconds_Ahead); return(synchro);
  }
テスターにとっては、松葉づえしかなく、すべてのケースに対応できるわけではありません。修正されるまで待ちます。
 
tol64:

それだ、わかったぞ。その時、私はあなたを誤解していました。))常に全履歴を正しく取得するために、以下のような同期を行うことができます。

テスターはあくまで松葉づえであり、すべてのケースに対応できるわけではありません。修正されるのを待っているところです。

いや、その通りだ。サーバーの時間はコンピューターのタイムゾーンに 依存せず、すべて同じで、「Market Watch」の最後の固定時間と同じになります。

あるサーバーでマーケットがクローズ(取引終了)した場合、新しい週に次のマーケットが再開されるまで、ストップは発動させないようにします。あなたの場合は、そうではないようです。引用符はすでに端末に入ってこなくなったが、サーバー上ではまだ処理されており、セットストップが発動される。証券会社によっては、ストップは相場ではなく、ストップに設定された価格で発動されるところもあります。これは市場メカニズムではなく、「台所」メカニズムである。

トレードの見逃しについてですが、もしあなたの時計が2分遅れている場合、サーバーの時間はローカルタイムで計算され、同じ2分遅れているため、この2分の間に行われたトレードは履歴に残らないのです。

テスターに関しては、すべて現地でシミュレートされており、現地時間もサーバー時間と等しいので、何を悩んでいるのか不明です。

 
MetaDriver:

ニコライさん、ありがとう!ところで、お誕生日おめでとうございます。

掘り出しました。

Skypeで、夜中に知人の誕生日を思い出す(宣伝として :)

ケーキをありがとうございます。とても素敵ですが、ろうそくがちょっと消化しにくいです:o)

 
Valmars:

いや、その通りだ。サーバーの時刻はコンピューターのタイムゾーンに依存せず、すべて同じで、「Market Watch」に最後に記録された時刻と同じです。

あるサーバーでマーケットがクローズ(取引終了)した場合、新しい週に次のマーケットが再開されるまで、ストップは発動させないようにする必要があります。あなたの場合は、そうではないようです。引用符はすでに端末に入ってこなくなったが、サーバー上ではまだ処理されており、セットストップが発動される。証券会社によっては、ストップは相場ではなく、ストップに設定された価格で発動されるところもあります。これは市場メカニズムではなく、「台所」メカニズムである。

いいえ、サーバー(MQ デモアカウント)ではすべて正常に動作していました。つまり、接続していない時にストップが発動したのです。しかし、私が接続したときには、すでに市場は終了していました。Market Watchの ウィンドウには、接続が切れる前の最後のティックの時刻が記録されています。2番目の値としてTimeCurrent()を指定してトレードの履歴を 要求したところ、全履歴が取得できませんでした。TimeCurrent()のヘルプには、そのように書かれていますが。

...時間値は取引サーバーで形成され、ユーザーのコンピュータの時間設定には依存 しません。

つまり、この関数は、接続が切断され、すでにマーケットが終了しているときに接続されたとしても、サーバーからマーケットウォッチウィンドウの いずれかの商品の最終到着の相場の値を返さなければならないと理解しています。私の場合はそうもいかず、すべての履歴を取得することができませんでした。ヘルプに記載がないのでわかりません。

また、トレードを見逃す可能性があるということですが、もしあなたの時計が2分遅れている場合、サーバーの時間はローカルタイムで計算され、同じ2分の遅れがあるため、この2分の間に行われた取引は履歴に残らないのです。

この場合、全履歴が欲しい場合は、1日先の数字を大きくすれば、全案件が選択される保証になります。:)

テスターについては、そこにすべてのシミュレートされ、ローカルは、サーバーに等しいので、それは、あなたに合っていないのか明らかではありません。

しかし、テスターではHistoryDealsTotal()関数にバグがあり、可視化モードで表示されます。そこでは時間が正しくモデル化されています。ただ、松葉杖が役立つケースもあります。