[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 909

 
多くの異なる注文が開かれている場合、カウントするのが面倒なので、オープンポジションの 総量を表示するインジケータがあれば教えてください。
 

助けてほしい。チュートリアルのExpert Advisorがありますが、1つの成行注文でしか動作しません。複数の金融商品で取引して、同時に注文を開いたり閉じたりしたいのですが、どうしたらいいですか?以下、例を投げてみましたが、最初の注文の値が会計注文の変数に代入されるものについてはスローダウンしています。また、これらの通貨ペアで1つの注文だけでなく、例えば、ある日、インジケータがいくつかの建玉を示したが、まだ決済が行われておらず、これらの2つの通貨ペアで3つまたは5つの注文をペアで建てた場合、どのようにすればよいのでしょうか?どのように実装すればよいかアドバイスをお願いします。


// 注文数 Symb1=SymbolN1(外部変数); // 金融商品の名前。Symb2=SymbolN2(外部変数); // 金融商品名.Total=0; //


注文数
for(int i=1; i<=OrdersTotal(); i++) // 注文ループ { if (OrderSelect(i-1,SELECT_BY_POS)==true) // 以下の場合 { // 注文分析: if (OrderSymbol()!=Symb1 $$ OrderSymbol()!=Symb2)continue; // 当社の金融商品ではありません if (OrderType()>1) // 保留注文が発生 { Alert("Pending order detected. Expert Advisor not working."); return; // 終了 start() } Total++; // 市場カウンタです。orders if (Total>2) // No more than two orders { Alert("more than 2 market orders. Expert Advisor does not work."); return; // Exit start() } この値以下は変数にセットされて、2度目の反復で何かするために、2つの注文(別の通貨ペアの2番目)があるだろうから、彼らは第2の注文に値を変更しますが、私は最初と第2の注文に情報を約束する必要があります。 Ticket=OrderTicket(); // 選択された注文の番号です。Tip =OrderType(); // 選択されたオーダーのタイプ。Price =OrderOpenPrice(); // 選択された注文の価格です。SL =OrderStopLoss(); // 選択された注文のSL。TP =OrderTakeProfit(); // 選択された注文のTP。Lot =OrderLots(); // ロット数 2回目の注文でも同じ変数を使い、接頭辞を1だけにすればいいのでしょうか?Ticket1=OrderTicket(); // 選択された注文の番号です。Tip1 =OrderType(); // 選択されたオーダーのタイプ。Price1 =OrderOpenPrice(); // 選択された注文の価格です。SL1 =OrderStopLoss(); // 選択された注文のSL。TP1 =OrderTakeProfit(); // 選択された注文のTP。Lot1 =OrderLots(); // ロット数 } }.






























 
artmedia70:

ERR_LONGS_NOT_ALLOWED4110 ロングポジションは許可されていません。エキスパートプロパティの確認が必要です。

ERR_SHORTS_NOT_ALLOWED4111 ショートポジションは許可されていません。エキスパートプロパティの確認が必要です。


ロングとショートのポジションは、どのようなものでしょうか?
 
artmedia70:

おおよそ正しい考え方。

これらは圧倒的にbool型の変数が多い。

そして、2つの値しか持つことができません。

true (真)とfalse (偽)です。

つまり、フラグがセットされていれば(値true)、注文がある ことを意味し、クリアされていれば(値false)、注文がない ことを意味する。

trueと falseの 値は、必ずしも存在/不在を 意味しない。

falseは 条件がある ことを意味し、trueは 条件がない ことを意味することもあります。

すべては、プログラムのロジックとプログラマーがチェックする基準によって決まります。

いずれにせよ、これらのフラグを自分で設定する場合は、どのフラグ値(真または偽)を指定するか

は、あるデータ状態または別のデータ状態に対応する。

同時に、関数の結果によってtrueやfalseを返す標準的な関数もある。

これらの値は、関数リファレンスに記載されています。

アルチョム ありがとうございます。
 
gheka:

ロングとショートの意味、その形は?

ロング=ロング=買い

ショート=売り


 

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

 

バーが指定したレベルより上か下にあるときだけ注文をクローズするスクリプトを捜しています。

もちろんtfの設定もあるはずです。

.もしあれば、リンクを教えてください。ありがとうございました。

 

50~100近いポジションで、同じ値段で開く買い注文と 売り注文がある。

注文を1つだけ出すにはどうしたらいいのでしょうか?

この機能がないと、代数全体を入力する必要があるような気がします。

 
gheka:

50~100近いポジションで、同じ値段で開く買い注文と売り注文がある。

注文を1つだけ出すにはどうしたらいいのでしょうか?

この機能がないと、代数全体を入力する必要があるような気がします。


自作のコードを添付したはずです。
 
gheka:

50~100近いポジションで、同じ値段で開く買い注文と売り注文がある。

注文を1つだけ出すにはどうしたらいいのでしょうか?

この機能がないと、代数全体を入力する必要があるような気がするのですが、どうしたらいいでしょうか?

OrderSend()関数は、すべてのティックで 機能する(と思う)。この問題を解決するには、スタート関数の前に、例えばint H=0 のように変数を作成する必要があります。

さらにコードを。

..........

if ( H==0)

{

OrderSend(ボチボチ)です。

}

H=1;

そして、代数も必要ない。また、OrdersTotal() は制約のために使用しない方が良い。