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

 
Interesting:
数値をピリオドに変換する関数を書くと便利です。
すべてのintがenumに変換されるわけではなく、コンパイルはでき、おそらくエラーは出ないが、実行時にクラッシュする。これだけでは意味がない。この例はバグの証明として引用されたが、そんなバグはない!
削除済み  
Valmars:
すべてのintがenumに変換されるわけではなく、コンパイルはでき、おそらくエラーは出ないが、実行時にクラッシュする。これだけでは意味がない。この例はバグを証明するために引用されましたが、そのようなバグはありません

すべてのintがそうではないことは明らかですが、誰もこの状況を関数で正しく処理することを禁じてはいません。

まあ、誰がどのように機能を書くかにもよりますが。もちろん、その後にどう使うかが重要です。

ピリオドを扱うには、例えば4つの関数が必要です。SecondsToPeriod(), PeriodToSeconds(), IntToPeriod(), PeriodToInt().

intとperiodの変換、その逆はこの4つの関数で十分だと思うのですが・・・。

ピリオドをint値のものに変換するときは、あらかじめピリオドが分かっているので、エラーは出ないはずですが、intをピリオドに変換するときに問題があれば、PERIOD_CURRENTを 返すことになります。

追記

> パラメータが int の場合、必要な型にキャストする必要があります。

ここはまさにその通りなのですが......。

int handle=iCustom(NULL,(ENUM_TIMEFRAMES) ТМ,....);
 

予約語を書き始めてコンテキストメニューに 表示されたら、それを選択(インターを押す)すると、すでに書き込まれているものに追加されます。例えばstr - choiceの場合、strstringを取得します。strin - choice と書いた場合、それぞれ strinstring

 
Dmitriy2:

予約語を書き始めてコンテキストメニューに表示されたら、それを選択(インターを押す)すると、すでに書き込まれているものに追加されます。例えばstr - choiceの場合、strstringを取得します。strin - choice と書いた場合、それぞれ strinstring

しかし、なぜEnterキーを押す必要があるのでしょうか?スペースバーを押しただけで、すべてがOKになる。
 
Yedelkin:
なぜEnterキーを押さなければならないのですか?スペースバーを押したらOKになった。
スペースバーを押すと、スペースバーで書いた文字だけが残ってしまうのですが...。
 
Dmitriy2:

予約語を書き始めてコンテキストメニューに表示されたら、それを選択(インターを押す)すると、すでに書き込まれているものに追加されます。例えばstr - choiceの場合、strstringを取得します。strin - a choiceと書いた場合、それぞれstrinstring

変だな、大丈夫だ。

Enter] を押す前 、押した後

 

タイムフレームが変更され、チャートが閉じられても、インジケーターのdeinit();プロシージャはまだ開始されないという理解で正しいでしょうか。

が、ヘルプによると

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

おかしいな...。
 
Urain:

変な話だけど、大丈夫

Enter] を押す前と後

というところからスタートします。

コード(行)の途中でやってみてください。

 
Dmitriy2:

というのは、ラインを先にやってしまうと......。

コードの途中(行)で、次のようにしてみてください。

なるほど、完成した言葉に新たな始まりを加えれば、そのような不具合が発生するのですね。

でも、最後に足すと普通になるんです。おそらくバグでしょう、サービスデスクをノックしてください。

削除済み  

皆さん、お疲れ様でした。

ローカルタイムとサーバータイム(サマータイム、冬時間、タイムゾーンを含む)に基づき、GMTタイムを正しく計算する方法を知っている人はいますか?

MQL4フォーラムのどこかでサマータイムを計算する例を見たのですが、見つかりません。:(