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

 
fellow:

逆コンマの中の数字は何ですか?

おそらくフィールドの値

 
Georgiy Merts:

その通りです。

私の考えでは、プログラムのすべての構造部分をプラットフォームに依存しないブロックにすることで、プラットフォームの変化がコードの小さな孤立した領域に影響を与えるようにする必要があります(私の考えでは、仮想インターフェイスはこれに非常に適しています)。さらに、新しいプラットフォームにプラグインできるというボーナスもあります。

新しいi-Functionsについては、時間指定でバーを検索する、という1つだけ見ています。もしかしたら、この機能は私のより速く動くかもしれません。あとは......きっと、私と比べて速度が上がることはないでしょう。つまり、人は悪いところから良いところを探さないものなのです。

私はずっと前にバーに関するライブラリを書いたので、この革新的な技術を使うことはないでしょう。

 
Alexey Volchanskiy:

私はずっと前にバーに関するライブラリを書きましたが、イノベーションを使うことはまずありません。

時間によるバーのネイティブ検索は、本当に速いかもしれません。

現在では、最初のバーの時間、最後のバーの時間、必要な時間によって必要なバーインデックスを 計算し、その後修正するように制限されています。

以前はバイナリサーチも使っていたのですが、補正をかけた直接計算の方が速いことが判明しました。

また、開発者は、この2つのオプションよりもはるかに速く正しいバーを見つけるインデックスを持っているかもしれません。

 
fellow:

この引用符で囲まれた数字は何ですか?

文字列は uchar配列

反転コンマの中に文字があり、反転コンマの左側に文字コードがあります。


より正確には

void OnStart()
  {
   string s;
   uchar u[1];
   for(int i=32; i<=255; i++)
     {
      u[0]=(uchar)i;
      if(i%16==0) s="";
      s+=IntegerToString(u[0],3)+"-"+CharArrayToString(u)+"  ";
      if (i==152) s+=" ";
      if(i%16==15)  Print(s);
     }
  }
 

1860にアップデートされた方、テスト中に複数のユーザーから先に指摘された問題を確認されていますか?

というのも、Otkritieブローカーがこのアップデートを送るのは2回目だからです ))

 
Vitaly Muzichenko:

フリーソフトを使うのであれば、最新の状態に保つこと、将来的に広告が出てもそれもよしとすること(フリーソフト)。誰もあなたに借りはありません。

このソフトは無料ではなく、ブローカーに多額の費用がかかります。トレーダーである私はブローカーに手数料を支払い、そこから開発者に報酬が支払われる。私はトレーダーであり、適切な扱いを受けたいのです。

しかし、テスターは2-3回実行するたびに不具合やクラッシュを起こすようになったので、安定版をアップロードすることができました。

 
少なくとも、10年間、ドローダウンを正しく計算する方法をソフトに教えなかったという事実を受け止めましょう。すべて自分で書かなければならなかった
 
// Воспроизведение ситуации, когда OrderSend успешно выполнилась, но ордера нет ни среди живых, ни среди мертвых.

#define Bid SymbolInfoDouble(_Symbol, SYMBOL_BID)
#define  PRINT(A) Print(#A + " = " + (string)(A))

void OnStart()
{
/*
  // Посылаем поочередно ордера на открытие/закрытие позиций
  while (!IsStopped() &&
         (OrderSend(_Symbol, OP_SELL, 1, Bid, 0, 0, 0) != -1) &&
         OrderSelect(0, SELECT_BY_POS) && OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 0))
    ;
*/

  MqlTradeResult Result;
  MqlTradeRequest Request = {0};

  Request.action = TRADE_ACTION_DEAL;
  Request.symbol = _Symbol;
  
  do
  {
    Request.position = PositionSelect(Request.symbol) ? PositionGetInteger(POSITION_TICKET) : 0;  
    Request.type = Request.position ? (ENUM_ORDER_TYPE)(1 - PositionGetInteger(POSITION_TYPE)) : ORDER_TYPE_SELL;
    Request.price = Request.position ? PositionGetDouble(POSITION_PRICE_CURRENT) : Bid;
    Request.volume = Request.position ? PositionGetDouble(POSITION_VOLUME) : 1;
          
  } // Посылаем поочередно ордера на открытие/закрытие позиций
  while (!IsStopped() && (OrderSend(Request, Result) ? OrderSelect(Result.order) || HistoryOrderSelect(Result.order) : true));
  
  PRINT(Result.order);
  PRINT(OrderSelect(Result.order));
  PRINT(HistoryOrderSelect(Result.order));
}


ForexTimeFXTM-Demo01での 結果です。

Result.order = 2210942086
OrderSelect(Result.order) = false
HistoryOrderSelect(Result.order) = false


スクリプトは、現在の注文でも履歴でもない「幻の注文」を検出するまで、ポジションを開いたり閉じたりする。バグと考えるべきか、それともプラットフォームの機能と考えるべきか。


ZZY このようなニュアンスで、いくつかのポジションが開くことがあるように脚本が書かれているのです。しかし、「幻の注文」を受けることは防げません。

Особенности языка mql5, тонкости и приёмы работы
Особенности языка mql5, тонкости и приёмы работы
  • 2018.02.08
  • www.mql5.com
В данной теме будут обсуждаться недокументированные приёмы работы с языком mql5, примеры решения тех, или иных задач...
 
1年前のBCS FXでもそうでしたが、dtzがアドバイザーの何かを入れ替えた後
 

こんにちは。本日、バージョン1860にアップデートし、Expert Advisorを最適化しているときに、この問題に遭遇しました。

最適化の遅れ

パス間の遅延は1分!?何が問題なのか、アドバイスをお願いします。

p.s. アップデート前は、すべてが規則正しく動いていました。