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

 
komposter:

ロットの正常化をフォローするため

みんな、なぜ理論武装するんだ?

笑いのため、そして頭を錆びつかせないために。

何事もほどほどが大切です。私は5年以上、様々なブローカー、口座タイプ、商品で実際のお金を使って仕事をしてきましたが、一度も 失敗したことがありません。
私は一度も過ちを犯したことがありませんし、これからも犯すことはないでしょう。 気にしないでください、私たちは本気じゃないんです。
 
komposter:

ステップは最小ロットの倍数であることが望ましい。

なぜ、そう言い切れるのか?練習-はわかるが、エンジンの限界はわからない。
当事者の主張は明確である。いずれにせよ、お見舞いには心から感謝します。:)

スワン

見たところ、すべての商品がチャンピオンシップ口座で同時に取引されている。登録)

ええ、登録されたようです。このエラーをキャッチしているのは、その1つです。

スワン

もう一度試してみるかもしれません。

if(現在の価格== 0.0) return;

アイデアありがとうございましたこのオプションは試してみなければならないだろう。:)

 

voix_kas:

ええ、登録されていると思います。そこでこのエラーをキャッチしているのです。

GBPCHF 2011.01.03 00:00に分足バーがあります。servicedeskに連絡していないのでしょうか?
 
Swan:
GBPCHF 2011.01.03 00:00に分足バーがあります。servicedeskに連絡しましたか?

SDには行かなかった。

こんな状況です。多通貨のEAを書いて います。ユーロバックス・チャートに置いて、Expert Advisorにパラメータとして渡された有効な通貨ペアをすべて追跡してみるのです。

方法論・文書化の欠如。ここで、例えばいくつかの質問をします。

1.なぜ価格がゼロになることがあるのか?結局、その時間(2011.01.03 00:00:00)には、最後の既知の価格(BidとAskの両方)がまだ存在していたのですね。端末はどのような原理でこれを与えているのだろうか。

2.見積もりセッションがある。トレーディングセッションと原理的にどう違うのですか?2回目の間に取引することが可能であると考えるのが自然である。また、最初の(クォーテーション)セッションで取引できないのであれば、なぜクォーテーションが変化するのでしょうか?引用が変わるのは、この解釈で失礼ですが、「需要と供給のバランス」が崩れるからです。

3.ある通貨ペアでTickを受け取ったとします。同じイベントで、私たちは別のペアの状態を「見よう」とします。もう一組のために来た最後の見積もりがまだ有効であるという保証はどこにあるのでしょうか?見積もりの寿命とは?最も合理的な説明は、直近の相場を確認し、同時に市場のロット量を確認することである。すなわち、私の見るところでは、ユルスドのNクォートが受信される。何もしないで来るわけではなく、この相場には一定のボリュームでオプションが置かれている。買いたい人/売りたい人がパイをかっさらっていく。ある瞬間、それ(ケーキ)は終わり、この言葉は「生きることをやめる」のです。そして、端末は次の(あまり魅力的でない)見積もりを提示する。また、相場が全くない(誰も通貨を売りたい/買いたいとは思わない)場合は?では、価格はゼロに等しいのですか?

とにかく、私は株式市場やFXの専門家ではないのです。

どなたか、声に出された質問に詳しくお答えいただけると幸いです。実際のところどうなのか、また、MT5ターミナルでこれらやそれらの状況はどのように表現されるのか。

 
voix_kas:

SDには行かなかった。

こんな状況です。多通貨のEAを書いています。ユーロバックス・チャートに置いて、Expert Advisorにパラメータとして渡された有効な通貨ペアをすべて追跡してみるのです。

方法論・文書化の欠如。ここで、例えばいくつかの質問をします。

1.なぜ価格がゼロになることがあるのか?結局、その時間(2011.01.03 00:00:00)には、最後の既知の価格(BidとAskの両方)がまだ存在していたのですね。端末はどのような原理でこれを与えているのだろうか。

2.見積もりセッションがある。トレーディングセッションと原理的にどう違うのですか?2回目の間に取引することが可能であると考えるのが自然である。また、最初の(クォーテーション)セッションで取引できないのであれば、なぜクォーテーションが変化するのでしょうか?引用が変わるのは、この解釈で失礼ですが、「需要と供給のバランス」が崩れるからです。

3.ある通貨ペアでTickを受け取ったとします。同じイベントで、私たちは別のペアの状態を「見よう」とします。もう一組のために来た最後の見積もりがまだ有効であるという保証はどこにあるのでしょうか?見積もりの寿命とは?最も合理的な説明は、直近の相場を確認し、同時に市場のロット量を確認することである。すなわち、私の見るところでは、ユルスドのNクォートが受信される。何もしないで来るわけではなく、この相場には一定のボリュームでオプションが置かれている。買いたい人/売りたい人がパイをかっさらっていく。ある瞬間、それ(ケーキ)は終わり、この言葉は「生きることをやめる」のです。そして、端末は次の(あまり魅力的でない)見積もりを提示する。また、相場が全くない(誰も通貨を売りたい/買いたいとは思わない)場合は?では、価格はゼロに等しいのですか?

とにかく、私は株式市場やFXの専門家ではないのです。

どなたか、声に出された質問に詳しく答えていただけるとありがたいです。現実にはどうなのか、MT5ターミナルではどのように表現されているのか。

一点一点、対処していきましょう。Expert Advisor はマルチカレンシーなので、それに応じて動作する必要があります。

1.0価格を取得する主な可能性のある問題を除外してみましょう - 選択的に選択された取引されることになっているシンボルのリスト(つまり、MarketWatchで必要なシンボルの可用性を心配する必要はありません)?

2.トレーディングセッションとクォートセッションについては、すでに開発者からコメントが寄せられています(特にRashid Umarov 氏からはこちらで コメントをいただいています)。相場があるのに取引できない状況について - 極めて普通です(特に株式市場の場合)。また、取引時間中に相場が更新されることは誰も保証していません。

3.ガラスについて - そして、外国為替市場でガラス(最も重要なのは、その中に何を入れるか)を得るためにどこですか?質問に対する回答は次のようになります(すべてがうまくいっていて、サーバーに接続されている場合)。

(a) 「Last Quote」(最後のティックに関する情報)は、ティックが発生してから新しいティックが表示されるまでの間、有効です。端末では、最後の気配値の時刻を「マーケット概要」で確認することができます。

b) 多通貨の Expert Advisor の OnTick() ハンドラでティックに関する情報を収集する場合、メインペアのティックの間に他のペアのティックが何十個もないことを誰も保証することができません。なぜなら、ペアとその取引活動によって、ティックの間はほんの数秒から数分まで経過することがあるからです。

もちろん、外国為替市場(特にEURUSD)においては、それはあまり必須ではありませんが、エキスパートアドバイザーのロジックにおいて、それを念頭に置き、考慮する必要があります。

c) プログラムでMqlTickの構造を解析し、最後の気配 値の時刻をある値と比較することで、気配値の関連性を簡単に判断することができます。

struct MqlTick
  {
   datetime     time;          // Время последнего обновления цен
   double       bid;        // Текущая цена Bid
   double       ask;        // Текущая цена Ask
   double       last;       // Текущая цена последней сделки (Last)
   ulong        volume;     // Объем для текущей цены Last
  };

d) すでに述べたように、サーバーとの接続を監視し、可能ならOnTick()だけでなくOnTimer()でもクォートのチェック/受信を行う必要があります。

 

逆にしてみましょう。端末の価格(bid/ask)がゼロになるのは、どのような場合ですか?

そして、2つ目の質問が来る。さて、このシンボルの最後の引用は2秒前/分前/時間前に受信されたことがわかりました。取引セッションは 終了しませんでした。どうすれば「価格がない」というエラーを回避できるのか?

Документация по MQL5: Получение рыночной информации / SymbolInfoSessionQuote
Документация по MQL5: Получение рыночной информации / SymbolInfoSessionQuote
  • www.mql5.com
Получение рыночной информации / SymbolInfoSessionQuote - Документация по MQL5
 
voix_kas:

逆にしてみましょう。端末の価格(bid/ask)がゼロになるのは、どのような場合ですか?

そして、2つ目の質問が来る。さて、このシンボルの最後の引用は2秒前/分前/時間前に受信されたことがわかりました。取引セッションは 終了しませんでした。どうすれば「価格がありません」というエラーが出ないのでしょうか?

あなたは、0円を受け取ったとき、GetLastErrorを尋ねましたか?
 
stringo:
0円になった時、GetLastErrorとしましたか?

エラーコードです。4756.スクリーンショットで ご覧いただけます。

さらに以下は、受け取った同じエラーです。同時に、マーケットウォッチが価格の存在を示し、ツールはログに同期されます。

 
voix_kas:

エラーコードです。4756.スクリーンショットで ご覧いただけます。

さらに以下は、受け取った同じエラーです。マーケットプレイスでは価格の在庫が表示され、ツールはログで同期される一方。

失敗しました...」の後ではなく、「価格がありません...」の後にエラーコードが必要です。
 
uncleVic:
エラーコードは、"failed... "の後ではなく、"no price... "の後に必要です。
  ...
  // Формирование торгового приказа.
  MqlTradeResult TradeResult;
  MqlTradeRequest TradeRequest;

  TradeRequest.action = TRADE_ACTION_DEAL;
  TradeRequest.symbol = Instrumet;
  TradeRequest.volume = NormalizeDouble(Volume, 8);
  TradeRequest.price = SymbolInfoDouble(Instrumet, SYMBOL_ASK);
  TradeRequest.sl = 0;
  TradeRequest.tp = 0;
  TradeRequest.deviation = Deviation;
  TradeRequest.type = ORDER_TYPE_BUY;
  TradeRequest.type_filling = TypeFilling;

  // Отправка торгового приказа.
  ResetLastError();
  if (!IsTradeAllowed()) return;
  if (OrderSend(TradeRequest, TradeResult)) TradeResultAnalyse("Buy.OrderSend", TradeResult.retcode);
  else Print("Buy.OrderSend = false! Код ошибки: \'", _LastError, "\'.");

また、ご指摘の箇所でエラーコードをキャッチするにはどうすればよいのでしょうか。上記コードの最終行でエラーを登録します。

このコードの直前に次の項を追加すると、このエラーは表示されません。

if(!NormalizeDouble(SymbolInfoDouble(Instrumet, SYMBOL_ASK), 8)) return;