初心者の方からの質問 MQL4 MT4 MetaTrader 4 - ページ 113

 
こんにちは!!!
すべての注文(売りと買い)を、すでに開いている場合でも、EAが開くようにする必要がありますHelp plz......I am grateful in advance...。

今のところ、私のコードにはこのようなものがあります。

PHPのコードです。
void start()
{
if(
NewBar())
{
// アルゴリズムそのものなど
}
}

bool NewBar()
{
static
datetimelastbar=0;
datetime curbar=iTime(Symbol(),0,0);
if(
lastbar!=curbar)
{
lastbar=curbar;
return(
true);
}
return(
false);
}.
 
qroner:
void Uchet_Orderov_Function(string _Simvol, int _Magic, int &_Mas[8]){。
ArrayInitialize(_Mas, 0)とする。
int Ticket=-1;
for(int pos=OrdersTotal()-1; pos>=0; pos--){。
if(OrderSelect(pos,SELECT_BY_POS,MODE_TRADES) && OrderSymbol()==_Simvol&&&)
OrderMagicNumber()==_Magic && OrderTicket()!=Ticket){ オーダーマジック番号()==_Magic && オーダーチケット()===Ticket
Ticket=OrderTicket()です。
switch(OrderType()の場合){。
case 0:{_Mas[0]++;_Mas[6]++;break;}
case 1:{_Mas[1]++;_Mas[6]++;break;}
case 2:{_Mas[2]++;_Mas[7]++;break;}
case 3:{_Mas[3]++;_Mas[7]++;break;}
case 4:{_Mas[4]++;_Mas[7]++;break;}
case 5:{_Mas[5]++;_Mas[7]++;break;}
}
}
}

}

これがその機能です。

ただ、標準モードではエラーが出ないので、問題はコードにないのではと思いました。

とにかく、誰も答えてくれないようで・・・。

 
qroner:

とにかく、誰も答えてくれないようです・・・。

端末では69行目にエラーがあると表示されるが、行数の少ないプログラムテキストを表示すると...。どのように答えたいですか?
 
qroner: とにかく、誰も答えてくれなさそう...。

投稿された関数にエラーはないようです。OrderTicket()!=Ticket を使って、同じチケットで隣接する注文をふるい落とすのに戸惑っています。そのような命令がないことを確認し、確認する。コンパイラで(69,25) が指定されている場合は、69行目の25の位置を見てください - エラーはそこにありますこの1行を入力します。

 
Vladimir: 端末では69行目がエラーと表示されるが、行数の少ないプログラムテキストを表示すると...。何を基準に答えたいのか?

69のラインナップが本当に気になる

 

ふっ、誰も反応しないと思っていたのに。

以下はその部分のコードです。

66 double Volatility(int _period){ [ボラティリティ](int _period)

67 double summ = 0;

68 for(int i=1; i<=_period; i++)

69 summ+=MathAbs(High[i]-Low[i])

70 return(NormalizeDouble(sum/_period,Digits))する。

71 }

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

 
qroner:

ふっ、誰も反応しないと思っていたのに。

以下はその部分のコードです。

66 double Volatility(int _period){ [ボラティリティ](int _period)

67 double summ = 0;

68 for(int i=1; i<=_period; i++)

69 summ+=MathAbs(High[i]-Low[i])

70 return(NormalizeDouble(sum/_period,Digits))する。

71 }

ご指摘ありがとうございます。

すべてがクリアになる。エラーは summ+=MathAbs(High[i]-Low[i]) という行にあります。端から25の位置を数えると、おそらく High[i] に戻ってしまうでしょう。

Alert(Low[-1]) と書きましたが、コンパイラは正の数を要求します。int n=-1; Alert(Low[n]); - Array out of rangre を実行するとき、と書きました。しかし、どうしてi<0になるのでしょうか? たぶん、ヒストリカルデータがないのでしょう。に ...

 

どのトレーダーを選べばいいのか、正確なサーバー名を教えてください。

 
qroner:

ふっ、誰も反応しないと思っていたのに。

以下はその部分のコードです。

66 double Volatility(int _period){ [ボラティリティ](int _period)

67 double summ = 0;

68 for(int i=1; i<=_period; i++)

69 summ+=MathAbs(High[i]-Low[i])

70 return(NormalizeDouble(sum/_period,Digits))する。

71 }

ご指摘ありがとうございます。

double Volatility(int _period)
  {
    double summ = 0;

    for(int i=1; i<=_period; i++)
        if(ArraySize(High) > i && ArraySize(Low) > i)
           summ+=MathAbs(High[i]-Low[i]);

    return(NormalizeDouble(summ/_period, Digits));
 }
double Volatility(int _period)
  {
    double summ = 0;
    int src = MathMin(MathMin(_period, ArraySize(High)), ArraySize(Low));

    for(int i=1; i<src; i++)
        summ+=MathAbs(High[i]-Low[i]);

    return(NormalizeDouble(summ/_period, Digits));
 }

期間(period)が配列の項目より 大きな値を持つことがあるようです。それゆえ、アレイのオーバーランが発生するのです。

いずれかを選択してください。

 
こんにちは!私はどのようにトリガーを作成することができますか? 例えば、私はこの条件が必要です if(iClose(NULL,HTF,4)<BlueLine) if it is executed DayDown = 1 !Q: DayDownを1のままにして、翌日までポーリングしないようにするにはどうしたらよいですか?