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

 
Artyom Trishkin:
そこで、M15のゼロローソク足でオープンポジションの 数を確認します。もし、すでにポジションを持っていて、それがM15のヌルキャンドルで開いているならば、それ以上開かないことです。
私はプログラミングに詳しくないのですが、このモジュールはこれを扱っています。
b=0;
    for (i=OrdersTotal()-1;i>=0;i--)  
       {
        RefreshRates();
        if(OrderSelect (i, SELECT_BY_POS, MODE_TRADES) == true) a = 0;
        if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) b++;
       }
しかし、問題はSLやTPで注文が閉じられると、次のM15のシグナルで再び注文が開かれることです。
 
customer03:
私はプログラミングが苦手なのですが、このモジュールがやってくれます
b=0;
       }
しかし、問題は、SLやTPによって注文が閉じられると、M15の次のシグナルが再びそれを開いてしまうことです。

H1上に新しいバーを 表示するためのコントロールを作成してみる

b=0;
    for (i=OrdersTotal()-1;i>=0;i--)  
       {
        RefreshRates();
        if(OrderSelect (i, SELECT_BY_POS, MODE_TRADES) == true) a = 0;
        if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) b++;
       }

      
if(  stM1 <= 20 && stM0 > 20  && stH0 > 70  && b==0   && opp != iTime(_Symbol,PERIOD_H1,0)) // покупка
      {
       opp = iTime(_Symbol,PERIOD_H1,0);

    RefreshRates();
    op = Ask;
 
Vitaly Muzichenko:

H1での新しいバー コントロールを試す

b=0;
    for (i=OrdersTotal()-1;i>=0;i--)  
       {
        RefreshRates();
        if(OrderSelect (i, SELECT_BY_POS, MODE_TRADES) == true) a = 0;
        if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) b++;
       }

      
if(  stM1 <= 20 && stM0 > 20  && stH0 > 70  && b==0   && opp != iTime(_Symbol,PERIOD_H1,0)) // покупка
      {
       opp = iTime(_Symbol,PERIOD_H1,0);

    RefreshRates();
    op = Ask;
試してみたが、変化がない。
 
customer03:
私はプログラミングが苦手なのですが、このモジュールではその点
b=0;
    for (i=OrdersTotal()-1;i>=0;i--)  
       {
        RefreshRates();
        if(OrderSelect (i, SELECT_BY_POS, MODE_TRADES) == true) a = 0;
        if (OrderSymbol() == Symbol() && OrderMagicNumber() == Magic) b++;
       }
しかし、SLまたはTPによって注文が閉じられると、M15の次のシグナルが再びそれを開く。

いいえ、それはこのコードの一部が行うことではありません。

M15期間のポジション開始 バーがゼロでないことを確認する必要があります - その後、ポジションを開くことができます。

if(iBarShift(Symbol(),PERIOD_M15,OrderOpenTime())!=0)
  {
   // код открытия позиции
  }
 

こんにちは!クラスについて教えてください、何が間違っているのでしょうか?

クラスASD
{
プライベート
// クラス内でのみ利用可能な変数や関数はここに配置されます。
int c (int m_a,int m_b)
{ int m_d = m_a+m_b;}.

を公開します。
void d (int a,int b )
{
m_a=a+bです。
}
// クラスの外で利用できる変数や関数はここにある
};
 
Vikon:

こんにちは!クラスについて教えてください、何が間違っているのでしょうか?

クラスASD
{
プライベート
// クラス内でのみ利用可能な変数や関数はここに配置されます。
int c (int m_a,int m_b)
{ int m_d = m_a+m_b;}.

を公開します。
void d (int a,int b )
{
m_a=a+bです。
}
// クラスの外で利用できる変数や関数はここにある
};
まずは記事を 読むことから始めましょう。
 
Artyom Trishkin:
まずは記事を 読むことから始めましょう。

読んではいるのですが、なかなかうまくいかないんです。

こんな感じです。

クラスとなります。

class ASD

  {

private:

   // Здесь располагаются переменные и функции, доступные только внутри класса

   int c(int m_a,int m_b)

     {
      m_a=a+b; m_b=a-b;

      int m_d=m_a+m_b;

      d=m_d;

      return(c(m_a,m_b));
     }

public:

   int               a;

   int               b;

   int               d;

  };

スクリプトを使用します。

#include <ASD.mqh>


ASD ar;
//+------------------------------------------------------------------+

//| Script program start function                                    |

//+------------------------------------------------------------------+

void OnStart()

  {

   ar.a=1;

   ar.b=3;

   Alert(ar.d);

  }
//+------------------------------------------------------------------+

アラートはゼロを出す。どうしたんですか?

 
Vikon:

読んではいるのですが、なかなかうまくいかないんです。

こんな感じです。

クラスとなります。


アラートはゼロを出す。どうしたんですか?

SRCボタンからコードを挿入するのは難しいのでしょうか?

正しいコードを挿入しておきました。

 
Vikon:

読んではいるのですが、なかなかうまくいかないんです。

こんな感じです。

クラスとなります。

class ASD

  {

private:

   // Здесь располагаются переменные и функции, доступные только внутри класса

   int c(int m_a,int m_b)

     {
      m_a=a+b; m_b=a-b;

      int m_d=m_a+m_b;

      d=m_d;

      return(c(m_a,m_b));
     }

public:

   int               a;

   int               b;

   int               d;

  };

スクリプトを使用します。

#include <ASD.mqh>


ASD ar;
//+------------------------------------------------------------------+

//| Script program start function                                    |

//+------------------------------------------------------------------+

void OnStart()

  {

   ar.a=1;

   ar.b=3;

   Alert(ar.d);

  }
//+------------------------------------------------------------------+

アラートはゼロを出す。どうしたんですか?

クラス内部で、valuesにPrintを 行う。そして、スクリプトを実行したときに出力されるログを見てください ;)
 
Artyom Trishkin:
クラス内部で、値に対してPrintを行う。そして、スクリプトを実行したときに出力されるログを見てください ;)
プリントは関数内にしか挿入できませんが、この関数をどのように呼び出せばプリントやアラートが動作するのか、私にはわかりません。3つの単純な変数で私のコードを修正するのを手伝ってくれませんか?記事の通りにやっても、エディターが受け付けないのか、何かが足りないのか、いずれにしても壁が出来てしまうので、ご相談させていただきました。SKCありがとうございました。