[ARCHIVE] フォーラムを散らかさないように、どんなルーキーでも質問してください。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 3. - ページ 227

 
Neo333:
こんにちは、ここで問題です:EAは保留中の指値注文を設定し、その後価格が移動し、注文は成行注文になります。全てうまくいくのですが、いくつかのオーダーで全く不明な不具合があります。全てのオーダーはある固定定数「K」を介して設定されているので、それらの間の距離は常に定数(Rn+1 = Rn + 「K」)であるべきなのです。しかし、注文は出ているし、価格も表示されているし、すべてチェックしているのに、前の注文から次の注文までの距離が「K」にならない。 価格との演算結果をチェックすると、つまり、引き算だけして結果をチェックすると「K」になるが、論理比較==はまだ偽となり、その価格で常に注文を出しているEAが、そこに注文はないと「思って」いることにつながる。長かったらごめんなさい、もっと詳しく説明したかったんです。正直、本当にどうしたらいいのかわからない :(
で比較する場合、NormalizeDouble を使用 すると、一般に MathAbs(Price1-Price2)<delta の方が優れています。
 
VladimirR:

ありがとうございました。 しかし、この 2011.09.30 21:26:49 TestGenerator: unmatched data error (volume limit 13634 at 2011.07.19 20:00 exceeded) がある。

私が理解する限り、このメッセージはExpert Advisorには関係ないのですが、それでもどう理解したらいいのでしょうか?



時間軸の話に矛盾がある。https://www.mql5.com/ru/forum/108760
 
sergeev:

機能修正にご協力ください


73
Eugene1 2011.09.30 16:19

最後の注文の終値を(現在の時刻に最も近い時刻で)決定する関数を書こうとしているのですが

こんな風に書いています。


しかし

為さる

uble PriceCloseLastPos(string smb = "", int cmd = -1, int mMin = -1, int mMax = -1) { .
int ticketDateTime=0;
int orderTicket=-1;
double closePrice = 0;
int ordTotal = OrdersTotal();
if (smb == "0") smb = Symbol();
for (int i = 0; i < ordTotal; i++) {.
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)){
if (OrderSymbol() == smb || smb == ""){
if (OrderType() == OP_BUY || OrderType() == OP_SELL) {。
if (cmd < OP_BUY || OrderType() == cmd){
if (mMin < 0 || (OrderMagicNumber() >= mMin && OrderMagicNumber() <= mMax)){
if (ticketDateTime < OrderCloseTime()){
ticketDateTime = OrderCloseTime();
orderTicket = OrderTicket();
closePrice = OrderClosePrice()。
}
}
}
}
}
}
}
if(orderTicket > -1) OrderSelect(orderTicket, SELECT_BY_TICKET, MODE_HISTORY );
return(closePrice);
}

しかし、なぜかこの関数は、テスターで開いた一番最初の注文のデータを返します。

実はこれが私の中間目標なんです。部分注文の最終終値を出す関数を書きたかったのですが(全ロットの数量分ではありません)、どうすればいいのか悩むところです......。

int ordTotal = OrdersTotal();

その代わり...

int ordTotal = OrdersHistoryTotal();

...次のページ ...

if(orderTicket > -1) OrderSelect(orderTicket, SELECT_BY_TICKET, MODE_HISTORY );

ここで、あなたの知識はあまりないことがわかります。チケットでオーダーを選択する場合、 pool パラメータは無視されます。つまり、MODE_HISTORYと書いても意味がない。このパラメータは、インデックスによる選択のみを参照する。

チケットで注文が選択されている場合、クローズドオーダーのリストから選択されていることを確認するために、クローズドタイムを確認する必要があります。0より大きい値でなければなりません。このパラメータが0より大きいのはクローズドポジションだけです。

 
MT4取引端末の 5分足では、履歴は表示されません。これは解決できるのでしょうか?
 
rosman:
MT4取引端末の5分足では、履歴は表示されません。これは解決できるのでしょうか?
くだらない質問で申し訳ないのですが。2010年11月以前の履歴が表示されないという意味です :)
 
rosman:
ぶしつけな質問で申し訳ないのですが。2010年11月以前の履歴が表示されないという意味です :)

だから、ないんです。また、明確にすることができます。MT4の設定で、チャート上のバーを増やしてみてください。

履歴の長いものをダウンロードしたり、購入したりすることで解決します。

 
Zhunko:

それなら彼女は存在しないことになる。また、明確にすることができます。MT4の設定で、チャート上のバーを増やしてみてください。

これは、より長い履歴をダウンロードしたり、購入したりすることで解決できます。

サービス>設定>チャートタブ>ウィンドウ内の最大バー数が65000本だった→100000本以上に変更、それでも最新は2010年11月のみです。この商品と時間枠の相場アーカイブは、1999年11月まで完全にロードされています。
 
ストーリーに登場するバーの最大 数は?もしかしたら、すでにトリミングされているのかもしれませんね。
 
Zhunko:
ストーリーに登場するバーの最大数は?もしかしたら、すでにトリミングされているのかもしれませんね。
10,000,000の価値がある。
 
アーカイブをアップロードする。私のも見てみますね。