OrderModify()の質問 - ページ 2

 
WhooDoo22:

あはは!チケット番号0を1に変えたら、全部うまくいったよ。そう、私はWilliamを誤解していたのです...。OrderSelect()関数が問題だったのです。明らかにOrderSelect()関数はチケットを選択する必要があります。チケット番号が 0 の場合、EA はどのチケットを選択するのでしょうか :O "?".お二人のご協力に感謝いたします。

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

チケット番号が0になることはありません... それは有効なチケット番号ではありません。


このスレッドを参照してください: https://www.mql5.com/en/forum/142545
 

Simonさん、0は有効なチケット番号ではないと理解しています、なぜなら0は選択するチケットがないことを意味するからです。1はチケットと、OrderSelect()関数が 選択しようとしている特定のチケット番号を表します。

スレッドを読んでみます。投稿していただきありがとうございます。

ありがとうございます。

 
WhooDoo22:

0は有効なチケット番号ではないことは理解しています。1はチケットと、現在OrderSelect()関数が選択している特定のチケット番号を表します。

チケット番号としてゼロは何の意味もなく、それは無効です。 OrdersTotal() == 0は注文がないことを意味します ... あなたが異なる関数とチケット番号と注文位置からの結果を混同していることは明らかです。


全く同じ結果を望むのでなければ、前にやったことと全く同じことをしてはいけません。 あなたは正しいチケット番号を持っていると仮定することはできません。オーダー・プールでそれを見つけて、選択する必要があります ... ...

もし学びたいなら、この練習をしてください。

  • 任意のブローカーで新しいデモ口座を 開く
  • TPまたはSLなしで0.1ロットの成行注文を置く
  • この注文の正しいチケット番号を見つけるコードを書き、チケット番号を使って注文を選択し、それを修正してTPとSLを設定し、最後にそれを閉じます。

 
RaptorUK:

いいえ、それは正しくありません。チケット番号としてのゼロは何も意味しません、それは無効です。 OrdersTotal() == 0は注文がないことを意味します ... それはあなたが別の関数とチケット番号からの結果を混同していることは明らかです。

もし学びたいなら、この練習をしてください。

  • 任意のブローカーで新しいデモアカウントを開く
  • TPまたはSLなしで0.1ロットの成行注文を置く
  • この注文のための正しいチケット番号を見つけるいくつかのコードを書いて、次にチケット番号を使用して注文を選択し、それがTPとSLを持つようにそれを変更し、最後にそれを閉じます。


この演習をやってみましたか? それをやったら、あなたのコードを見せてください。
 

サイモン

このプロジェクトは 私がコーディングします。簡単なはず です。私はすでに仕事の大部分を終えています。)

ええ、あなたが一貫してサポートしてくれているのを見ると、この演習を行うことに抵抗はありません。

ありがとうございます。

 

サイモン

完了です。スクリプト形式のファイルが必要だと思ったので、チャートにドラッグ&ドロップして、EAがいくつかの数字を計算するのを待ち、マーケットから注文を引き出すのを見ることができます。

現在構築しているものとこのプロジェクトの違いは...

現在作っているもの

if(OrderSelect(ticket,SELECT_BY_TICKET,MODE_TRADES)){

このプロジェクト

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

if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES)){" を使った理由は、私が扱っているのがオーダープールであり、あらかじめ定義された特定のチケット変数ではないから です。

ボリューム II の戦略を実行するために特定のチケットを選択する必要があるため、ボリューム II 用の現在のビルドでは事前定義された変数を使用しています。このプロジェクトは、単に瞬時に注文をクローズするように設計されています。

実は、Ask/Bid価格を含む関数実行をコード化したとき、頭の上に2つの疑問符が浮かびました。というのも、通常、注文を出したり閉じたりするときは、「Ask」/「Bid」と入力するだけですが、市場の注文が売りか買いかという 条件に基づいて、Ask価格かBid価格のどちらかになる変数を定義する必要があることに気づいたんです。そこで、いつものように「注文の合計が0より大きい場合」を入れれば、準備完了。これでほぼ解決です。

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

ファイル:
 

OK、それは私が意図したものではありませんが、私は私の要件を明確にする必要がありました。.あなたのコードはSLとTPを設定しません ... ... とにかく、私の要求を修正させてください ..... .

同じデモ口座を使って ... ...

  • GBPUSD、USDJPYとEURUSDの1つのTPまたはSLなしで0.1ロットのための1つの市場順序を置く ... あなたがこれらの順序を置くの順序を忘れる
  • 取引が行われた順番を考慮せず、また、行われた注文の 数の事前知識がないと仮定して、USDJPYに置かれた注文のための正しいチケット番号を見つけるいくつかのコードを記述します。
  • チケット番号を「USDJPYのチケット番号 = "」という形でログに出力する。
  • そして、チケット番号を使って注文を選択し、TPとSLを持つようにそれを変更し、最後にそれを閉じます。

そして、完了したら、あなたのコードと チケット 番号を示すログの行を表示してください。

 

Simonです。

ああ、すみません、最初の指示を完全に読んでいなかったので、あなたが尋ねたことをコード化していませんでした。でも、新しい要件リストが追加されたので、さっそくやってみます。

その前に、これからやろうとしていることを書いておくと...。

1.USDJPYで発注されたチケット番号を見つける。

2.2. チケット番号を「USDJPYのチケット番号=」という形でログに出力する。

3.3. チケット番号を使って注文を選択し、TPとSLを設定するように注文を変更し、決済する。

4.コードとチケット番号を示すログからの行を表示します。


とはいえ、私たちが同じページにいることをはっきりさせたいのです。

ええ、私は1.を行うことができます(明らかに私はチケットを分離するために "通貨関数 "を使用することはできませんよね?)

ええ、2.はできます。

3.OrderSelect()関数で 注文を選択し、TPとSLがあるように変更して、それを閉じるということではありませんか?

4.もちろん、私はコードを表示します;)...チケット番号を示すログからの行(あなたが尋ねたかもしれないことは、チケット番号を示すログの "視覚的なスナップショット "であった。ノーマター)

私がタスクを開始する前に、まずレスポンスを投稿してください。


ありがとうございます。

 
WhooDoo22:


とはいえ、私たちが同じ考えを持っていることをはっきりさせたい。

ええ、私は1.を行うことができます(明らかに私はチケットを分離するために "通貨関数 "を使用することはできませんよね?)

ああ、2.はできる。

3.OrderSelect()関数で 注文を選択し、TPとSLがあるように変更して閉じるということではないのでしょうか?

4.もちろん、私はコードを表示します ;)... チケット番号を示すログからの行(あなたが尋ねたかもしれないことは、チケット番号を示すログの "視覚的なスナップショット "であった。ノーマター)

あなたのコードが要件を満たす限り、好きな関数を使用することができます。そして、その際に、例えば、「取引が行われた順番を全く考慮せず、注文の数についての 予備知識もないと仮定する」というような、条件として与えられていることを破らないようにすることです。)
 
何かヒントがありますか?
理由: