どんな新人の質問でも、フォーラムを乱雑にしないように。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 6. - ページ 843

 
artmedia70:
チケットでポジションを決済するには、まず、決済するポジションの正確なチケット番号を知る必要があります。その後、OrderSelect(ticket,SELECT_BY_TICKET)関数で注文を選択し、選択が成功したことを検証する必要があります。次に、正常に選択された注文の終了時刻を確認する必要があります。なぜ?なぜなら、チケットで選択する場合、OrderSelect(..., ...,pool) 関数の pool パラメータは無視されるからです(インデックスで選択する場合にのみ使用されます)。また、注文をうまく選択できたとしても、その注文がどのリストで選択されたのか、つまりクローズドポジションのリストなのかオープンポジションのリストなのかを知る必要があることを意味します。その注文がまだ市場に残っているかどうか」を知ることができるのが、終値のチェックです。終値が0であれば、その注文はまだ市場にある。時間がゼロと異なる場合、注文はすでに先に終了しています。そして、このような手順の後、その注文を閉じるための注文を送ることができます。

目の前にチャートがあり、そこに注文があるのを確認し、それを閉じることにした、それだけだ。は必要ありません。

(という理由で聞いています)。ワンクリックトレード」のクロスで決済できるのですが、ホットキーの使い勝手がとても良いです)

 
evillive:

int OrdersTotal(); - 真偽ではなく数値を返す、これが間違い。注文がない場合は0を意味し、注文がある場合は1だけではありません。

そして、まだ取引していない開設したての口座に限って、クローズドオーダーがないのです。繰り返しになりますが、これは関数の間違った使い方です。

また、注文がサーバーに送信された後に、なぜRefreshRates();なのでしょうか?先にお金を払ってから「いくらですか」と聞くようなものです。

ありがとうございます、わかりました。
 
evillive:

int OrdersTotal(); - 真偽ではなく数値を返す、これが間違い。注文がない場合は0を意味し、注文がある場合は1だけではありません。

そして、まだ取引していない開設したての口座に限って、クローズドオーダーがないのです。これもまた、機能の誤用である。

しかし、なぜ注文がサーバーに送信された後にRefreshRates();する必要があるのでしょうか?お金を払っているのに、「いくらですか?

一度、「ロシアの首都の名前は2つ間違う」という表現を聞いてショックを受けたことがあります。そこで、どこにあるのだろうか。そして、2つの間違いがあることに気がつきました。

どういうことかというと、今回議論しているコードラインにも複数のエラーがあるということです。

if (!OrdersTotal()==true)

if(negation -> expression == true) もちろん、Artemが説明したように、0ならfalse、それ以外はtrueと理解できます。では、オープンオーダーがあることを否定すると...然うはモスクワは2回間違えると書きやすくなります。

 
Escapee:

目の前にチャートがあり、そこに注文があるのを確認し、それを閉じることにした、それだけだ。は必要ありません。

(という理由で聞いています)。ワンクリックトレード」のクロスで閉じられるのですが、ホットキーを使うととても便利です)

ここでは、プログラム的に正しく行う方法をお伝えしています。

1.目の前には1つのオーダーが書かれたチャートがありますね。そのチケット番号が表示され、プログラム?プログラムはこの番号を知っている必要があります。

2.閉じたいんですね。ですから、このようなチケットのある注文が開かれていることがわかります。プログラムは?プログラムはそれを知らない。そのため、プログラムはそのようなチケットの付いたオーダーがオープンされたかどうかを知る必要があります。

3.十字架をクリックすればいいんです。そして、プログラムはコマンドを与える必要があります。

したがって、結論は次のようになる。

1.募集している ポジションがあるかどうかを調べます

2.その場合、必要な順番のチケットを探します

3.見つかったチケットを元に順番を決めます。正常に選択できた場合は...

4.チケットで選択した注文の締切時刻を確認します。閉店時間が0になる場合は...

5.閉じます。

 

私なら、このように答えを訂正します。

artmedia70:


1.目の前にあるのは、1つのオーダーが書かれたチャートです。そのチケット番号を見ることができます

2.閉じたいんですね。

3.十字と点をクリックすると...

5.それを閉じる

 
AlexeyVik:

私なら、このように答えを訂正します。

まだ冗談を言ってるのか?
 
artmedia70:
まだ冗談?

ああ、今日は休みなんだ。


 
artmedia70:


つまり、オープニングスクリプトと同じようなクロージングスクリプトを作ることはできないのでしょうか?なぜなら、とてもシンプルだから...。考えていた のは...
 
Escapee:
では、open orderスクリプトと同様のcloseスクリプトを作ることはできないのでしょうか?なぜなら、とてもシンプルだから...と思っていたのですが。

注文の開始もそれほど簡単ではありません - 単一の取引注文の送信コマンドではありません。これらのコマンドは、トレードサーバーのリターンコードを チェックし、そのレスポンスに反応することで、完全な機能として「包まれる」必要があるのです。有効なレベルの確認、誤った計算レベルの注文があった場合の再計算、などなど。

注文をサーバーに送信するコードだけでなく、正しい注文を検索して、注文を閉じるという本格的な機能を呼び出すという点では、同じことです。

 
artmedia70:

注文の開始もそれほど簡単ではありません - 単一の取引注文の送信コマンドではありません。これらのコマンドは、トレードサーバーのリターンコードをチェックし、そのレスポンスに反応することで、完全な機能として「包まれる」必要があるのです。有効なレベルのチェック、誤った計算レベルが注文で与えられた場合の再計算、などなど。

待てよ...やっと理解できた...

これは私が必要とした注文の開始です -OrderSend(Symbol(),OP_SELL,0.1,Bid,3,0,0); .そして、このスクリプトは機能します。

さて、そろそろ閉めないと......。