注文を閉じるには、注文の種類と その種類に対応する価格を定義する必要は全くありません。OrderClosePrice()と書けば十分です。
void OnStart()
{
int i, total = OrdersTotal()-1;
for(i = total; i >= 0; i--)
{
if(OrderType() < OP_SELLSTOP)
{
if(!OrderClose(OrderTicket(), OrderLots(), OrderClosePrice(), 100))
printf("***********");
}
}
}/********************************************************************/
ヘルプには、他にも不正確な点がたくさんあります。例えば、SetIndexBuffer() を見てみましょう。ヘルプのどこが悪いのでしょうか?
「パラメータ
インデックス
[in]インジケーターバッファの 番号。ナンバリングは0から始まります。この数値は、#property indicator_buffersで宣言された値よりも小さくなければなりません。"(この記述は真実ではありません)
indicator_buffers プロパティは、表示するバッファの数を指定します。おそらく、このヘルプの意味は、確認していませんが、計算に使用するバッファは、SetIndexBuffer()で番号を与える必要はない、ということでしょう。しかし、私が確認したところ、計算に使用するバッファにSetIndexBuffer() で数値を与えると、iCustom()でその値を取得することができます。
開発者がこのスレッドを訪れているのだから--「機微とトリック」についての質問がある。
書式付き印刷の例:PrintFormat("Bid=%.5f", Bid)
質問:固定精度(ここでは5)の代わりに、精度が_Digitsに依存するようにフォーマット記述で条件を指定する方法はありますか?PrintFormat("Bid=%s",DoubleToString(Bid, _Digits)) のような「前処理」を行わずに行う場合。
MQL4では、#property strictの状態によって、同じコードでも異なる結果を得ることができます。そして、このときコンパイルが成功するのは、どちらも同じです。そのため、実行が「漫然」としていると、間違った場所(厳密には)で長い間原因を探すことになるのです。
質問:固定精度(ここでは5)の代わりに 、_Digitsに依存するような条件をフォーマット記述で指定することは可能でしょうか?

- www.mql5.com
Описание проблемы
MQL4でインジケーターを書いています。DRAW_HISTOGRAM スタイルの文書化されていない機能に直面しました。
チャート上に値を表示するには、ヒストグラムの上側の値と下側の値の2つのバッファが必要です。インジケータ配列のバッファをマッピングする際、スタイル用のバッファが0と1、2と3、4と5などの値を持つ場合、すべてが正常に表示されます。ただし、スタイルバッファにOTHERから始まる値、つまり1と2、3と4、5と6を割り当てた場合、データウィンドウの値は正しく表示されますが、ヒストグラムの線はグラフに正しく表示されません。
DRAW_HISTOGRAMスタイルの記述が偶数バッファで始まるとは限らないので、この特殊性についての記述をドキュメントに追加するか、修正してください!
トレーディング、自動売買システム、トレーディング戦略のテストに関するフォーラム
-アレックス-, 2017.02.07 18:21
MT4のExpert Advisorで、複数のグラフィックバッファを持つユーザーインジケータが一貫して呼び出される場合、再計算は呼び出しごとに行われるか、すべてのバッファは一度に計算され、あなたはコードで何度も指標を参照することができ、リソースの無駄があることを期待しないことができます私にアドバイスをお願いすることができます。また、コードが完了しない(1tickより長く実行される)にもかかわらず、インジケータの値が変化した場合、どうなるのかが知りたいです。
トレーディング、自動売買システム、ストラテジーテストに関するフォーラム
スラワ さん 2017.02.08 08:20
すべてのバッファを一度に計算します。静かにインジケーターの値を問い合わせる - 再計算はしないMT4では、Expert Advisorから呼び出されたインジケータは、このEAのフローとその履歴データのコピーで動作します。Expert Advisor をループさせることができますが、同時に OnTick 呼び出し時に計算されたインジケーターデータを受け取ることができます。RefreshRatesを呼び出すまで。RefreshRatesはExpert Advisorの履歴データを更新し、その後、そのすべてのデータはインジケータの 最初の呼び出しで 再計算されます。
OrderClosePriceは、対応するOrderSelectの直後にのみ使用することができます。なぜなら、OrderSelectはOrder(const)関数のデータを一度コピーし、同じRefreshRatesでは更新ができないからです。
つまり、例えばOrderClosePriceがクローズできなかった場合、次の試行の前にOrderSelectを再度行う必要があります(RefreshRatesは必要ありません)。
残念です...。
---
ポストが無駄にならないように。
StringGetCharacter("a", 0) の代わりに'a' とだけ書くことができます - StringSplit で文字列を分割する際によく必要となります。

- 無料取引アプリ
- 8千を超えるシグナルをコピー
- 金融ニュースで金融マーケットを探索