[ARCHIVE!] フォーラムを散らかさないように、どんなルーキーの質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしではどこにも行けない - 4. - ページ 590

 
gheka:
2012.12.07 16:14:28 attempt141 GOLD,H1: unknown symbol name 0 for OrderSend function すべて順調でした。端末やDCによるのか、それともコードに何か変更があったのか?



コードがないと答えようがないのですが...。例えば、ある証券会社では、以前は金のティッカーがXAUUSDで、注文のオープンフィンドに明示的に書かれていたのですが、今はどうでしょうか。同じ証券会社でティッカーがGoldのため、Opening error: unknownsymbol name 0 for order opening fi...と表示されます。それとも、コードも何か変えたのだろうか...。(変更された)。端末に依存することなく、自分の仕事をする、ただそれだけです。

 
Desead:

ロールオーバーで注文が再開された場合、ストップ値とテイクアウェイ値にスリッページが発生するかどうかアドバイスいただけますか? また、ロールオーバー後のオープン価格とストップ値の差が、レベリングしたストップ値より小さい場合、ストップ値はどのように設定されるのでしょうか?

私の仕事は次のようなものです。成行注文がある場合、その注文がロールオーバーでオープンされたかどうかを確認し、オープンされた場合は、クローズされた前の注文のチケットを取得する必要があります。もしかしたら、誰かが検索アルゴリズムを教えてくれるかも?

1.最初のオープンオーダーを選択します。
2.開店時刻を見て、23:40から00:20までなら、この注文をチェックし続ける(念のため40分のウィンドウを取る、ただし23:50から23:59まで取ることも可能なようだ)。
3.チケットを記憶し、立ち止まって
4.私は、コメントに「swap」という単語が含まれており、通貨ペアが一致する履歴を使用して、すべてのクローズド-オーダーを確認する
5.ストップとテイクのデータを比較し、一致すれば必要なオーダーペア、一致しなければステップ1へ戻る。


ストップとテイクプロフィット注文は、すでに設定された保留中の注文ですが、サーバーの統計では別の注文にリンクされて表示されます。

あなたの問題の解決法については、https://www.mql5.com/ru/articles/1390 とhttps://www.mql5.com/ru/articles/1404 を参照してください。 これらの記事のいずれかに、あなたのケースに対応する例があると思います(ずいぶん前に読んだので正確には覚えていませんが、資料はまだ役に立つと思います)。

 
gheka:
2012.12.07 16:14:28 attempt141 GOLD,H1: OrderSend 関数のシンボル名 0 が不明です。

端子やDCに依存しているのか、それともコードが変わっているのか?

Try141 GOLD,H1: unknown symbol name 0 forOrderSend function は、プログラムが 141 回注文を開こうとしたが、名前 0 のシンボルを知らなかったので失敗したことを意味 します。
 
注文時に書かれるようなセリフの解説を書くことは可能ですか(チケット番号、注文種別)。
 
lottamer:

その意味を教えてください

while(真)

をEAに貼り付けたモディファイのスクリプトの中に入れるのでしょうか?

という奇妙なチェックがあるのですが、これは何でしょうか?

if(cmd==OP_BUY || cmd==OP_SELL) ?

空いているポジションの有無を確認するだけの方が良いのでは?

if(cmd==OP_BUY || cmd==OP_SELL) これは オープンポジションの チェックです。while(true) はオープンポジションがある場合に実行されるループで、それがある限り、または条件とbreak; の前の次の演算子まで実行します(または return で関数から退出します)。
 
Chiripaha:
注文時に書かれるようなセリフの解説を書くことは可能ですか(チケット番号、注文種別)。

正しい質問をすることを学びますか?何の線?送電線?ほとんどの人はテレパシーではないので、言わなければ意味がわからない。
 

なぜか条件の羅列

if (cmd999==OP_SELL && Stoch_1>Stoch_2 && OrderProfit()>10)

は、OrderProfitが10(ドル)未満でもTRUEとして実行されますか?

やはり、10ドル以下はすべて切り捨てるべきなのでしょうか。

 
rigonich:

キリストのために、正しい質問をすることを学んでください。何の線?送電線?ほとんどの人はテレパシーではないので、言わなければ意味がわからない。


よく説明してくれたと思います :))))))))))))))))))))))))))))))))))))))))

どうしたらいいのかわからない :))

 
rigonich:

正しい質問をすることを学びますか?何の線?送電線?ほとんどの人はテレパシーではないので、言わなければ意味がわからない。
私はテレパスなんだ!どうしたんですか?:-))
 
lottamer:

と、なぜか条件の羅列に

if (cmd999==OP_SELL && Stoch_1>Stoch_2 && OrderProfit()>10)

は、OrderProfitが10(ドル)未満でもTRUEとして実行されますか?

やはり、10ドル以下はすべて切り捨てるべきなのでしょうか。


この行の前に変数を表示してみてください。もしかしたら、あなたのプログラムがこの行に到達していないか、変数の値があなたの期待するものでないのかもしれません。例えば、セントの口座を持っている場合、OrderProfit() 関数は、ある証券会社ではセントで、他の証券会社ではドルで値を返します