[ARCHIVE] フォーラムを散らかさないように、どんなルーキーでも質問してください。プロフェッショナルは、通り過ぎないでください。Nowhere without you - 3. - ページ 565

 
TEXX:

こんにちは。

オーダーモディフィケーションが部分的に動作するのですが、何が問題なのかを解明してください。

コードとログを添付します。ログにうまくいったこと、いかなかったことを書いているのですが......。


おそらく、このためでしょう。

        if (OrderOpenPrice()==!LastSellPrice()) sell_sl = 0;
        if (OrderOpenPrice()==LastSellPrice()) sell_sl = last_sell_sl;

2番目の条件は、ほとんどうまくいきません

 
Vinin:


おそらく、このためでしょう。

2つ目の条件は、ほとんど満たされない


どうすればうまくいくのか?
 
TEXX:

が、どうすればうまくいくのか?

検索で調べてみてください。例えば、double型の 2つの数値を比較する方法とか...。
 
Roman.:

検索でトピックを探してみてください - double型の2つの数値を比較する方法など...


始値の 正規化で解決したが、ゼロとゼロ以外のストップ高の条件...が機能しない

皆さん、ありがとうございました!解決しました。私の手が悪いだけです。!=を間違って書いてしまったのが全ての問題の原因です。

 

すべての未決済注文の利益の合計を調べる方法を教えてください。

OPS:すみません、フランス病です - 非学術的な...

AccountProfit()

 

MQLの皆さん、技術的に次のようなことが可能かどうか教えてください。

- 過去から100個(あるいはその他の数)の引用履歴を取り出し、何らかの既知の原則に従ってそれらを選びます。

- その100枚の買いポジションをモデル化し、利益の合計が通常のものになるようにテイクプロフィットやストップロスを列挙します(つまり、100枚の別々の履歴にフィッティングを行い、各枚に1つの注文だけが機能するようにするので、合計100個の注文があります)、次に売りポジションについても同様に、利益を最大化するテイクとストップを列挙してください。

- 履歴から選択されたテイクとストップで、実際の取引(買いまたは売り)を開始します。

そして、これらはすべてExpert Advisorの枠組みの中で行われます。

コツは、連続した1つの履歴ではなく、別々の履歴の集合を拾うことで、ポジションをクローズしてから 新しいポジションを持つということを毎回行っています。論理的にどうすればいいかというのはすごく考えているんですが、技術的にMQLを使ってどうすればいいかというのがわからないんです。

 
alexeymosc:

MQLの皆さん、技術的に次のようなことが可能かどうか教えてください。

- 過去から100個(あるいはその他の数)の引用履歴を取り出し、何らかの既知の原則に従ってそれらを選びます。

- その100枚の買いポジションをモデル化し、利益の合計が通常のものになるようにテイクプロフィットやストップロスを列挙します(つまり、100枚の別々の履歴にフィッティングを行い、各枚に1つの注文だけが機能するようにするので、合計100個の注文があります)、次に売りポジションについても同様に、利益を最大化するテイクとストップを列挙してください。

- 履歴から選択されたテイクとストップで、実際の取引(買いまたは売り)を開始します。

そして、これらはすべてExpert Advisorの枠組みの中で行われます。

コツは、連続した1つの履歴ではなく、別々の履歴の集合を拾うことで、ポジションをクローズしてから新しいポジションを持つということを毎回行っています。論理的にどうすればいいかというのはすごく考えているんですが、技術的にMQLを使ってどうすればいいかというのがわからないんです。

ZigZagフラクチャーについて。ポイントは、上方移動型、下方移動型、上方移動型など、1つずつ交互に破砕している点です。
 
すべての注文が終了したときにEAがビープ音を鳴らす必要があります。この点を修正するか、別の動作するバージョンを提供してください。

ありがとうございます。

//-----
  static bool First = true;
  static int PreOrdersTotal = 0;
  int NowOrdersTotal = CountTrades();
  if(First)
  {
    PreOrdersTotal = NowOrdersTotal;
    First = false;
    return(0);
  }
  if(UseSound == true && NowOrdersTotal < PreOrdersTotal) {PlaySound(CloseSound);}
  PreOrdersTotal = NowOrdersTotal;
//-----

 
rustein:
EAは、すべての注文が終了したときにビープ音を鳴らす必要があります。

ありがとうございます。


もしもの時のために

- CountTrades()関数が何を返すかわからない。

- CloseSound変数に何が入っているかはわかりません。

- CloseSoundに含まれる名前の(理論上の)ファイルが存在するかどうかは不明です。

 
rustein:
EAは、すべての注文が終了したときにビープ音を鳴らす必要があります。

ありがとうございます。


if (OrdersTotal() == 0) {
  if (UseSound)  {
     PlaySound(CloseSound);
   }
   UseSound = false;
} else {
   UseSound = true;
}