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

 


プログラマーの皆様へ。
以下の質問にお答えください。

小数点以下8桁で出力します。なぜ正常化されないのか?

double open_sss=NormalizeDouble(iOpen(Symbol(),PERIOD_M5,elapsed_bar),Digits);
Print("open_sss= "+open_sss);

http://savepic.ru/1435355.gif

 
Hedin:


プログラマーの皆様へ 以下の質問にお答えください。


小数点以下8桁で出力 します。なぜ正常化されないのか?

http://savepic.ru/1435355.gif


関数NormalizeDouble() のヘルプに、指定した精度で丸め、double型を返すと書いてあればそのとおりで、小数点以下の精度で指定した文字列が必要なら、DoubleToStr()を使うべきでしょう
 
IgorM:


int startH = Hour(); の意味を誤解していたようです - これは、現在のサーバー時刻 - 時間となります。


ありがとうございます、動作するようになりました。

しかし、なぜHour()関数ではうまくいかなかったのか、いまだに理解できない。

北半球の現在の時間を教えてくれたのだ。例えば、5とする。

したがって、open[i+5]を呼び出すと、その日の始まり、つまり午前0:00に開いたローソクの始値を得る ことができるのです。

具体的にどこがわからないのか、説明してください。

 
webgreck:


ありがとうございます、動作するようになりました。

Hour()関数でうまくいかなかったのは、いまだに理解できません。

北半球の現在の時間を教えてくれたのだ。例えば、5とする。

したがって、open[i+5]を呼び出すと、その日の始まり、つまり午前0:00に開いたローソクの始値を得ることができるのです。

具体的にどこがわからないのか、説明してください。


サーバーの時刻はサーバーの時刻( TimeCurrent() )、あなたのPCにある時刻( TimeLocal(); )、関数Hour() :

"プログラム開始時に最後に知られていたサーバー時刻の現在の時間(0,1,2,...23)を返す(この値はプログラム実行 中に変化しない)。注:最後に知られていたサーバー時刻は、テスト中にシミュレートされる。"

変わらないなら自分でどうすればいいのかもわからないし......テスターにしか必要ないのかもしれない。

 
webgreck:

何がいけなかったのか、教えてください。

時間足チャートの最初のローソク足、つまり0:00のローソク足の始値を求め、このローソク足から現在のローソク足までの最大値を求めたいのですが、どうすればよいでしょうか?

なぜいつも現在の日の最初のローソクの高値が表示されるのですか?

私はこうしています。

Time[]を循環して目的のバーを見つけ、そのバーから循環して極値を見つけます
 

同僚、テスターが取引で手数料を差し引かないようにする方法を知っている人はいますか?もしかして、MT4には、特定の商品の契約の手数料の金額を指定するファイルがあるのでしょうか?

何のために必要なのか、説明させてください。通貨以外では、UberやRTS指数の先物にも興味があります。クイックはロボット開発には 不向きです。例えば、私の証券会社は、1契約の手数料を持っている - rts指数(それが聞こえるように、しかし...:)の先物のCFD - それはラケットです...。グリーンペーパーは10枚です。そのため、250pの利益のある取引でも、テスターでは1ドルの損失となる。信じられないことですが、ツールも見積もりもあるのに、テストして最適化することは不可能なのです。

助けて

 
Blaid73:

同僚、テスターが取引で手数料を差し引かないようにする方法を知っている人はいますか?もしかして、MT4には、特定の商品の契約の手数料の金額を指定するファイルがあるのでしょうか?

何のために必要なのか、説明させてください。通貨以外では、UberやRTS指数の先物にも興味があります。クイックはロボット開発には不向きです。例えば、私の証券会社は、1契約の手数料を持っている - rts指数(それが聞こえるように、しかし...:)の先物のCFD - それはラケットです...。グリーンペーパーは10枚です。そのため、250pの利益のある取引でも、テスターでは1ドルの損失となる。信じられないことですが、ツールも見積もりもあるのに、テストして最適化することは不可能なのです。

助けて


probably this:https://www.mql5.com/ru/forum/119830

 

同じことをするのに速く動作するようにコードを置き換える方法と内容をアドバイスしてください。

if (BB_1>BB_2 && BB_2<=BB_3 && BB_1<0)                               // Найден разворот BB вверх
      {
      switch (tf)
         {
            case 1:     TrBBTurnUP_M1 =true;  TrBBTurnDN_M1=false;      // Флаг разворота вверх на М1
            case 5:     TrBBTurnUP_M5 =true;  TrBBTurnDN_M5=false;      // Флаг разворота вверх на М5
            case 15:    TrBBTurnUP_M15=true;  TrBBTurnDN_M15=false;     // Флаг разворота вверх на М15 
            case 30:    TrBBTurnUP_M30=true;  TrBBTurnDN_M30=false;     // Флаг разворота вверх на М30 
            case 60:    TrBBTurnUP_H1 =true;  TrBBTurnDN_H1=false;      // Флаг разворота вверх на H1
            case 240:   TrBBTurnUP_H4 =true;  TrBBTurnDN_H4=false;      // Флаг разворота вверх на H4
            case 1440:  TrBBTurnUP_D1 =true;  TrBBTurnDN_D1=false;      // Флаг разворота вверх на D1
            case 10080: TrBBTurnUP_W1 =true;  TrBBTurnDN_W1=false;      // Флаг разворота вверх на W1
            case 43200: TrBBTurnUP_MN =true;  TrBBTurnDN_MN=false;      // Флаг разворота вверх на MN
         }
      }

一つの大きな関数の一部分に過ぎず、そこにはこのようなチェックがたくさんあり、パフォーマンスに大きく影響します。すでにここでコードの最適化について 質問したのですが、回答が得られず、検索しても出てこないので...。誰も知らない、共有しようともしないのは、本当に秘密なのか......?せめて記事へのリンクだけでも...。をお好きなようにお読みください...どうせ完全なテストは 無理だし...。

 
連絡方法を教えてください。いろいろと疑問があるので、アドバイスをお願いします。
 
artmedia70:

同じことをするのに速く動作するようにコードを変更する方法と内容をアドバイスしてください: ...

私なら、スイッチを既製の配列に置き換えます。なぜ、毎回定義済みの値を割り当てるのですか?