どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 239

 
Antonius:


何が問題なのか、それは機能です。

 
r772ra:


何が問題なのか、それは機能です。


テストモデルとして「始値で」ではなく「すべてのティックで」とすればよかったのです。もちろん、そうやってテストする時間は長いです。

さらにありがとうございましたこんなバカなことに時間を割いて申し訳ありません)

 
Antonius:


テストモデルとして「始値で」ではなく「すべてのティックで」とすればよかったのです。もちろん、テストには長い時間がかかります。

さらにありがとうございましたこんなバカなことに時間を割いて申し訳ありません)

始値で テストするには、ローソクの方向を確認するために、ラインの0を1に置き換えてください。しかし、その場合は最初のバーで方向を確認することになります。0の場合は、始値と終値が等しいだけです。
 

専門家に正しいデータの抽出方法を教える方法を教えてください。

最後の値段の値を求めてもらう。見つけても、小数点以下4桁で出力し、5桁目を四捨五入してしまうのです。5番目の文字は、ロボットを正しく動作させるために考慮されるべきものです。

また、平均価格も少し切り上げます。また、平均価格は4文字目に切り上げられる。

電卓で違う数字が出るんです。

NormalizeDouble() を適用してみましたが、まだ結果は出ていません。

int Oldticketnumber;
double Unused = 0;
int Ticketnumber = 0;
RefreshRates();
for(int cnt = OrdersTotal()-1; cnt >= 0; cnt --)               //Для всехоткрытых ордеров
 {
  if (OrderSelect (cnt, SELECT_BY_POS, MODE_TRADES))  // Выбираем со всего масива ордеров
  if(OrderSymbol()==Symbol() && OrderMagicNumber()==MagicNumber)//Выбирам ордера експерта
   {
   if(OrderType()==OP_BUY)                                              
    {

     BuyAP += OrderOpenPrice()*OrderLots();          // Средневзвешаная цена всех позиций  
  
     Oldticketnumber = OrderTicket();                               // присваиваем тикеты
     if (Oldticketnumber > Ticketnumber)                         //  ищем последний тикет 
      {
      LastPrise = OrderOpenPrice();                         // присваиваем последнюю цену
      Unused = LastPrise;                                       // задаем цену переменной
      Ticketnumber = Oldticketnumber;                          // последный заданый тикет
      }
// далее по  тексту---------------------------------------------------------------------

if (BuyLots != 0)       // Если есть ордера BUY, то вычисляется их средняя цена открытия
    BuyAP /= BuyLots;      

 
Limita:

専門家に正しいデータの抽出方法を教える方法を教えてください。

最後の値段の値を求めてもらう。 見つけても、小数点以下4桁で出力し、5桁目を四捨五入して しまうのです。5番目の文字は、ロボットを正しく動作させるために考慮されるべきものです。

また、平均価格も少し切り上げます。ま た、平均価格は4文字 目に切り上げられる。

電卓で違う数字が出るんです。

NormalizeDouble()を適用してみましたが、まだ結果は出ていません。

これらをどこで見るか?
 
artmedia70:
これらをどこで見るか?


丸めから逃れることはできない。しかし、5桁目や4桁目からの四捨五入はどうなのかという問題
を以下のコードに追加してください。

Comment("Средняя цена Buy ",BuyAP, " Sell ",SellAP, " Последняя цена " ,LastPrise);
                                                                              // принтуем
 
Limita:


丸めから逃れることはできない。しかし 、以下のコードで5桁目から丸めるのか4桁目から丸めるのかが問題 です
:

こんな風に試してみました

Comment("Средняя цена Buy ",DoubleToStr(BuyAP,5), " Sell ",DoubleToStr(SellAP,5), " Последняя цена " ,DoubleToStr(LastPrise,5));

文字列DoubleToStr( 倍精度、整数値)
BUYMA関数は、数値を指定された精度での文字表現で含むテキスト文字列に変換します。

 

皆さんこんにちは、こんなタスクがあります。

新しいバー(合成)の出現を、最小限のコードで、バーの開始時刻に 結びついた変数を使わずに判断する。解決方法は以下の通りです。

if (Bid>Open[0] || Bid<Open[0]) return;
テスターやデモで使用する際に考えられる落とし穴は?
 
dmitriy086:

皆さんこんにちは、こんなタスクがあります。

新しいバー(合成)の出現を、最小限のコードで、バーの開始時刻に結びついた変数を使わずに判断する。私は次のように解決しました。

テスターやデモで使用する際に考えられる落とし穴はありますか?


シンセティック取引では、この楽器のための単一のバーではなく、新しいバーを識別しようとすることができるそれぞれのための楽器のセットを持っています。EAは1つのペアを監視し、そのペアのティックが到着したときだけ他のティックを見るため、取引する商品の数が多ければ多いほど、エラーや時間のずれが発生する可能性が高くなります。
グローバル変数を 使うこともできますが、ロボットなしで他の通貨ペアの新しいティックを追跡しても、自分のペアにはティックがないので取引できないので、あまり役に立ちません。楽器をたくさん持っていない場合、一番簡単な方法は、一度にどこにでも存在することを考慮して、ロボットを書くことです。

すべてのバッファの値を別のインジケーターウィンドウに表示しないことが可能かどうか、誰か知っていますか?インジケーターウィンドウの左上にある白線ですね、8つのバッファを使うのに無駄な桁数が多くて迷惑です。

 
Desead:


すべてのバッファを別のインジケーターウィンドウに表示しないことが可能かどうか、誰か知っていますか?これはインジケーターウィンドウの左上に書かれている白線ですが、使用されている8つのバッファの中に不要な数字がたくさん入っているのは迷惑な話です。


Inite SetIndexLabel(...,")を実行しても、データウィンドウ からバッファが消えてしまいます。