OrderModify()の質問 - ページ 3

 

サイモン

どうすればいいか考えているのですが、何も出てきません。MetaEditorの辞書を漁って、可能なルートを探しているところです。OrderSymbol()とOrderSelect()関数を 併用することを検討しています。ヒントの選択肢を与えてくれるのであれば、当然それを利用します。ヒントってなんですか(^^;) 私はこれを挑戦というより、議論と考えています。あなたがこれを挑戦と考えるなら、私はノーヒントに同意します。私は自分の能力に全幅の信頼を置いています。

ありがとうございました。

 

なぜMarketInfo()を使うのですか?


これをコード化する前に、それをどのように行うかを考え、そしてそれをコードではなく、簡単な言語を使って表現できるようにする必要があります。


この要求を満たすために必要なコードは、あなたがコードベースに載せたコードで行う必要があったことの多くの側面を含んでいます。


もう寝る時間なので・・・・・・ここでヒントを出します。複数の注文があるので、それらをすべてループして正しいものを見つける必要があります・・・・・・あるいは複数かもしれませんが、見える限りの選択肢をカバーする必要があります。

もし方法が見つからなければ、私に知らせてください。私が解決策と思うものを考え、それを投稿します。そして、あなたはそれを読んで理解し、それをバラバラにして、間違っていると思う部分や必要でない部分を正当化するよう私に要求することができます。

いずれにせよ、私はその過程であなたが学ぶことができると確信しています。

 

Simonです。

Richard Bhauerが、私が以前投稿したものの改訂版を送ってくれました。これは私の好みのコーディングスタイルでは ありませんが、印象的なものだと思います。このコードが、あなたが推進している注文の選択と決済のためのメソッドと関係があるかどうかを確認するために、あなたとそれを共有しようと思いました。Richardに改めて感謝します。また、OrderSymbol()を試してみようと思った理由は、OrderSend("GBPUSD"...); または任意の通貨ペアの複数のオーダーエンドを使ってEAを書いたことがあるからです。私は、注文を閉じるために同じようなプロセスを単純に試みることができると仮定しました。どうやら、注文を選択する(決済する)作業はOrderSelect()関数の 中で行われるようです。前回の投稿で、ヒントとして、正しいチケット番号を探すためにループを実行してみるということが書かれていました(ループを最初に実行し、チケットが見つかったら、まずOrderSelect()関数を含む次のコードブロックにドロップダウンするということだと思います。OrderSelect() 関数の内部には、正しいチケット番号を見つけるためにループの前のコードブロックに使用される変数が あります。OrderSelect()関数は、チケットを選択するために、その変数を使用します。チケットが選択されると、他のすべては非常に単純明快です。午前中にあなたの応答を読んでみます。

ありがとうございました。

ファイル:
 
WhooDoo22:

どうやら、注文を選択する (決済する) 作業は OrderSelect() 関数の中で行われるようです。

OrderTicket(), OrderLots(), OrderClosePrice(), OrderProfit(), OrderType(), OrderTakeProfit(), OrderSymbol(), OrderStopLoss(), OrderOpenTime(), OrderOpenPrice() 関数のドキュメントに目を通すと、すべて次のように記述されていることが確認できます。注:注文はOrderSelect()関数によって事前に選択されている必要が あります。

OrderClose() にはこのステートメントがありません。なぜなら、最初のパラメータとしてチケット 番号を OrderClose() に渡すから です。それからOrderLots()でポジションサイズを、OrderOpenPrice()でオープンプライスを調べますが、 まずは 選択する必要があります。


あなたはこの概念を把握し、理解する必要があります。. .

WhooDoo22 です。

前の投稿で、ヒントとして、正しいチケット番号を見つけるためにループを実行してみることを述べています(私は、ループが最初に実行され、チケットが見つかったら、最初にOrderSelect()関数を含む次のコードブロックにドロップダウンすると推測しています。OrderSelect()関数の内部には、正しいチケット番号を見つけるためにループの前のコードブロックで使用される変数が あるはずです。

ループの中からどうやって正しいチケット番号を見つけるのですか? あなたはどのチケット番号が正しいものであるかを知りません ... あなたが使用できる情報は何ですか?
 

サイモン

以下の関数、OrderTicket(), OrderLots(), OrderClosePrice(), OrderProfit(), OrderType(), OrderTakeProfit(), OrderSymbol(), OrderStopLoss(), OrderOpenTime(), OrderOpenPrice() はOrderSelect() 関数があらかじめ選択していなければならないものである。

OrderClose()関数は、チケット番号を最初のパラメータとして渡すので、OrderSelect()関数によって事前に選択されている必要はありません。

OrderSelect()の目的は、注文を選択することです。

コンセプトは理解できたので、ドキュメントを確認します。

どのように見つけるのでしょうか...

RE:まだ解決していません。

ありがとうございます。

 

サイモン

チケット番号」を指摘され続けているようですね。これは理解しています。しかし、OrderSelect()関 数を使用してチケットを分離する方法は、2つしかないと私は認識しています。特定のチケット番号の変数がない「Order pool」の方法と、特定のチケット変数名「ticket」、「bababab22」、「lambchops」などを使用してチケットを分離する方法です。私は「Order pool」の使い方が一番実用的だと思っていますので、このような形でこの機能を使うことを検討しています。いいですね。


また、Robertのリビジョンにざっと目を通しましたが、彼が注文をクローズしたとき、単にOrderSelect()関数(注文のプールから選択する関数)を使い、明らかなシグナルクローズ以外に使用した唯一の「if」条件は、ロットサイズと注文が買いか売りかだけでした。これだけです。私はそれが好きですが、これは現在のところタスクではありません。このタスクでは、確かに同じことをタイプすることはできますが、何も学ぶことはありません。現在難しいのは、あなたが教えようとして いることがわからないのに、どうやって学べばいいのか、ということです。あなたがもっと率直に考えを述べてくれれば、あなたが伝えたいことが何なのか、もっと早く理解できると思うのですが。もっと理解できるように努力します。

ありがとうございました。

 
WhooDoo22:

サイモン

チケット番号」を指摘され続けているようですね。これは理解できます。しかし、OrderSelect()関数を使用してチケットを分離する方法は、2つしかないと認識しています。特定のチケット番号の変数がない「Order pool」の方法を使うか、もう一つの方法として、特定のチケット変数名「ticket」、「bababab22」、「lambchops」などを使って、チケットを切り分けることができます。私は「Order pool」の使い方が一番実用的だと思っていますので、このような形でこの機能を使うことを検討しています。いいですね。

この場合、注文は手動で行われるため、チケット番号を変数に格納することはできません。したがって、コードはチケット番号を発見するまではチケット番号を知りません。

チケット番号の保存は、大きな不便であり、それをしなければならない場合を除き、避けるべきです。 なぜかというと、あなたのコードはMT4の再起動から回復できなければならないので、チケットに関する情報をファイルに保存し、理想的には追加のバックアップカバーのためにファイルを2番目のPCにコピーします。 それから、コードが再起動したときに、ファイルを読んでチケット番号を取得し、それが去ったところから拾おうとしなければなりません。このような複雑さはほとんどの人には必要ありませんが、しばしば彼らはチケット番号を保存することがより簡単なオプションであると考えています ... そして、彼らは本当にファイルに情報を保存する必要はありません、等、等... そしてそれがすべてうまくいかないとき、彼らは彼らが持っていた希望します。

OK、私は自分のバージョンを私の要求を満たすようにコード化し、複数のUSDJPY注文を検出し、すべてのUSDJPY注文を修正し閉じるためにいくつかのチェックを追加しました ... ここに最終バージョンがどうなったかを示すいくつかのスクリーンショットを示します。


私が手動で出した注文 ... .

すべての注文

私のコードで修正したUSDJPYiの注文(TPとSLに注意)とクローズ、そしてチケット番号。 また、買い注文と売り注文が混在していることに注意。

USDJPYiの注文をクローズ

残りの注文は.......

受注残

 

Simonです。

この場合、チケット番号を変数に格納することはできませんが...。

RE:この例では、「オーダー・プール」ルートで行くのですね?

// order pool example

if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES)){

チケット番号を保存するのは、とても不便です...。

RE:同感です。

チケットの情報をファイルに保存し、理想的にはそのファイルを2台目のPCにコピーしてバックアップを追加することです...

RE:はい、しかし、チケットに関する情報をファイルに保存することは、現在私の状況では、コードブロックの別のグループです。私は、基本的なことが書かれているまで、これをコーディングし始めないでしょう。

私は自分の要求を満たすために自分のバージョンのコードを書きました。

RE:ええ、それはわかります。うまくいったようですね :)


この作業を終えたら、第二巻に進むつもりです。勝手に書いてくれるわけではないのですが... ;)

ありがとうございます。

 
WhooDoo22:

Simonです。

この場合、チケット番号を変数に格納することはできませんが...。

RE:この例では、「オーダー・プール」ルートで行くのですね?


他の選択肢はないのでしょうか?
 

サイモン

いいえ、私の知る限りではありません。選択肢は2つしかないようで、第2巻ではこのオプションがベストのようです。また、あまり複雑ではないようで、その点は少しも気になりません;)

で、このタスクに話を戻すと、usdjpyペアの 注文を選択するためにオーダープール法を使用したとのことですが、usdjpyの注文を分離するためにどのような条件を使用 したのでしょうか?

ありがとうございました。

理由: