MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 1610

 
Vitaly Muzichenko #:

構造を短くする 方法を教えてください。

ポイントは、すでに記号が入っているペアを切り離すことです

USDCHFのポジションを持っています

===

EURGBPのポジションがあり、シグナルはAUDUSDから来ました。AUDまたはUSDのポジションがないことをどのように検出しますか?

ヴァレリーには正しい考え方がある。しかし、なぜサイクルの各反復で注文通貨で探している通貨を特定しなければならないのか理解できない。ライン内を見るより証拠金通貨と利益通貨を取る方が簡単そうですしね。通貨の仕様を見る・・・私ならこうする

bool Search(string _sy)
 {
  int OT = OrdersTotal();
  string curencyProfit = SymbolInfoString(_sy, SYMBOL_CURRENCY_PROFIT),
         currencyMargin = SymbolInfoString(_sy, SYMBOL_CURRENCY_MARGIN);
  for(int i = 0; i < OT; i++)
   {
    if(OrderSelect(i, SELECT_BY_POS))
     {
      bool res = StringFind(OrderSymbol(), curencyProfit) >= 0 ||
                 StringFind(OrderSymbol(), currencyMargin) >= 0;
      if(res)
        return(true);
     }
   }
  return(false);
 }/******************************************************************/
 
Valeriy Yastremskiy #:

文字列検索

0ポジションと3ポジションの両方を検索する、2ラインであるべきだと思います。ランダムマッチを途中で切断すること。

エスゼット

ダサい、4つの条件がある。

イコールでない A Bとイコールでない C D

条件 A==C または A==D または B==C または B==D

誰にも書けないと思います)))

2回目の挑戦でダントツどうやら夕方にはその時が来たようだ。

 
Vitaly Muzichenko #:

構造を短くする 方法を教えてください。

ポイントは、すでに記号が入っているペアを切り離すことです

USDCHFのポジションを持っています

===

EURGBPのポジションがあり、シグナルはAUDUSDから来ました。AUDまたはUSDのポジションがないことを検出する方法は?

私は、すべてのオープンオーダーの通貨を配列に集め、シグナルを受信したときに配列を通過させます。

 
Alexey Viktorov #:

ヴァレリーには、思考の方向性がある。しかし、なぜサイクルの各反復で注文通貨に求める通貨を定義する必要があるのか、理解できません。そして、ラインで見るのではなく、証拠金通貨と利益通貨を取るのが簡単だと思います。通貨の仕様を見る......私ならそうする

明日、確認します。


Taras Slobodyanik#:

私は、すべてのオープンオーダーの通貨を配列に集め、シグナルが出たときに配列に目を通すようにしています。

考え方は同じですが、配列も必要です。

 

また、通貨ごとに1=AUD、2=EUR...とマジックで設定することも可能です。と魔法を比較します。

配列については、イミフですが、今は3通貨ペア4条件、明日は33通貨ペア34条件というのが合理的でしょうか。

 
Vitaly Muzichenko #:

明日、確認します。


ポイントは同じですが、配列も必要です。

なぜ、明日まで待つのか?仕様書に目を通すのが面倒な場合は、関心のあるすべてのシンボルに対してスクリプトを実行し、マージン通貨と利益通貨の一致を見つけます。
/********************Script program start function*******************/
void OnStart()
 {

  Comment(SymbolInfoString(_Symbol, SYMBOL_CURRENCY_PROFIT), "\n",
          SymbolInfoString(_Symbol, SYMBOL_CURRENCY_MARGIN)
         );
 }/******************************************************************/
書く前に全部確認したわけではないのですが、一致するものがなくて...。
 
Vitaly Muzichenko #:

意味は同じですが、配列も必要です。

さて、ポイントは簡単です。通貨コードを取得し、既製の配列を使って検索を行い、取引が開始されたときに更新されます。

 

コードを助けてください。トレンドライン上の新しいバーを開くと、保留中の注文が 移動する必要があります。

すなわち、オーダーとラインを永久に交差させることになるのです。

トレンドラインを転換させるためには、その交差点と時間を知っておく必要があります。計算方法は?

 
Zalevsky1234 保留中の注文が 移動する必要があります。

すなわち、オーダーとラインを永久に交差させることになるのです。

トレンドラインを転換させるためには、その交差点と時間を知っておく必要があります。計算方法は?

以下は、交点算出のための関数 です。
 

X::doJob()メソッドのスタティック変数 varについて質問です。タイプXのオブジェクトを作成し、何らかの作業を行った後、それを破棄するクラスUがある。そして、これは定期的に起こることです。質問:var変数はいつ削除されるのですか?


class X {
public:
   void doJob() {
      static int var = 0;
   }
};

class U {
private:
   X *x;
public:
   U(){

   }
   ~U() {
      delete x;
   }
   void U::dojob(){
      x = new X();
      x.doJob();
      delete x;
   }
};