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

 
4つの注文のうち、2つだけ(1ファイバーと100ファイバーから)注文したいのですが、なぜか教えてください

tick=OrderSend(Symbol(),OP_SELLLIMIT,volume,Fibo100,0,0,Fibo1,NULL,マジック,0,赤)。
tick=OrderSend(Symbol(),OP_SELLLIMIT,volume,Fibo138,0,0,Fibo62,NULL,magic,0,Red)。
tick=OrderSend(Symbol(),OP_BUYLIMIT,volume,Fibo1,0,0,Fibo100,NULL,magic,0,Red);
tick=OrderSend(Symbol(),OP_BUYLIMIT,volume,Fibo_138,0,0,Fibo38,NULL,magic,0,Red) とします。
 

静的変数について 質問です。グローバル変数と機能的に同等であり、ローカル変数よりも性能的に有利なのでしょうか?

 
何が問題なのか理解できない。私はこうしています:
 Print(DoubleToStr(NormalizeDouble(Ask, 5),5));
小数点以下5桁:1.34869を出力します。

また、DoubleToStr関数がない場合
   query = StringConcatenate("insert into eurousd(ASK, BID) values(",
                             NormalizeDouble(Ask, 5), ",", NormalizeDouble(Bid, 5), ");");
   Print(query);
then:
insert into eurousd(ASK, BID) values(1.349,1.3489);.すなわち、小数点以下4桁 !
データベースはdouble型 であることが望ましいので、stringへの変換関数は使いたくありません。
何が問題なのでしょうか?
 
Printは、ダブルで4文字以上印刷しない。
 
つまり、print関数の引数は すでにdoubleではなくstringなのです。ポイントは、DoubleToStr関数を使用しない場合、
その後、StringConcatenateで文字が切り捨てられることです。
 
fevrall >>:
Так в аргумент функции print попадает уже строка, а не double. Суть в том, что если не использовать функцию DoubleToStr,
то StringConcatenate обрезает знаки.

print関数の引数は、文字列と2つの倍数を連続して表示するコマンドです。ダブルはいずれも切り捨て。

文字列への変換で必要な精度があることがわかるので、baseにdoubleを入れるのはご自由に。

 
granit77 さん、ご清聴ありがとうございました。

   query = StringConcatenate("insert into eurousd(ASK, BID) values(",
                             DoubleToStr(NormalizeDouble(Ask, 5),5), ",",
                             DoubleToStr(NormalizeDouble(Bid, 5),5), ");");
DoubleToStrでは、データベースが必要とするものを取得します。
 
また、Tickイベントが発生したサーバーの時刻も 取得したい)
 

インジケーターウィンドウを細い帯状にプログラムする方法

 
nikost >>:

Как можно окно индикатора програмно сделать в виде узкой полоски

クラスター型?

粗末なものですが、例として、ざっくりとした埋立地のものですので、ご覧になってみてください。