エラー、バグ、質問 - ページ 735 1...728729730731732733734735736737738739740741742...3185 新しいコメント --- 2012.05.03 12:58 #7341 joo:混乱」を発見。なぜコンパイラは2番目のb 変数の定義を好まないのでしょうか?また、一般的に、このような場合、どのように対処すればよいのでしょうか?ディファインが好きではないのです。配列の次元 の変数の型が違うというエラーが表示されるだけです。次元の定数のみ指定可能です。 Andrey Dik 2012.05.03 13:02 #7342 sergeev:彼が嫌いなのは定義ではないのです。また、「配列の次元 の変数の型が間違っている」というエラーも発生します。次元で指定できるのは定数のみ定数もうまくいかず、エラーになります。const int AA =11; ArrWe m[AA];アクセス指定子 アクセス指定子は、変数や構造体、クラスのメンバへのアクセス方法をコンパイラに指示します。 const指定 子は、 変数を定数とすることを宣言し、この変数の値がプログラムの実行過程で変更されることを許さない ものです。 変数の初期化は、宣言時に一度だけ行うことができます。 --- 2012.05.03 13:05 #7343 選択肢は2つだけという意味です。int Arr[100]または #define r 100 int Arr[r].残りはArrayResize Dmitriy Skub 2012.05.03 13:19 #7344 papaklass: 理解できない。チャート上にEAを置いたところ、「Experts」タブにこのメッセージが表示されました。Expert Advisorはとにかく作業を続けます。これはエラーではなく、警告です。何についての警告ですか?実行 時のエラーであり、メモリリークを意味する。文字列が占有しているどこかのメモリが解放されていない。ほとんどの場合、new後も削除されない構造体やクラスであることが考えられます。具体的には、コードに目を通す必要があります。 Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров www.mql5.com Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5 Valerii Mazurenko 2012.05.03 22:57 #7345 joo:定数も動作せず、エラーになります。アクセス指定子 アクセス指定子は、変数や構造体、クラスのメンバへのアクセス方法をコンパイラに指示します。 const指定 子は、 変数を定数とすることを宣言し、この変数の値がプログラムの実行過程で変更されることを許さない ものである。 変数の初期化は、宣言時に一度だけ行うことができます。 定数変数は定数ではない!一度だけ初期化が許される、つまり、メモリが確保される変数である。定数のタスクは、実行時にメモリを占有することなく、計算されてコードに挿入されることである。定数はconst AA=11となる。したがって、コンパイラは悪態をつくことになる。const AA=11 ならば、文句は言われない。 Виктор 2012.05.05 14:21 #7346 何が問題なのか、教えてください。ChannelPeriod = 100の最後のインターバルで、インジケータの測定値に急激な上方へのシフトが見られますが、最後の100本を超えるとすべて正常に表示されます。どなたか修理方法をご存じないでしょうか?//+------------------------------------------------------------------+ int OnCalculate(const int rates_total, const int prev_calculated, const datetime& time[], const double& open[], const double& high[], const double& low[], const double& close[], const long& tick_volume[], const long& volume[], const int& spread[]) { //--- variables of indicator int i; CopyClose(Symbol1_Name,PERIOD_M30,0,rates_total,close_1); CopyClose(Symbol2_Name,PERIOD_M30,0,rates_total,close_2); //--- main cycle for(i=prev_calculated; i<rates_total; i++) { Last[i] = (Symbol1_Vol*Symbol1_K*close_1[i] - Symbol2_Vol*Symbol2_K*close_2[i]); } // Считаем положение эквити относительно канала удвоенного среднеквадратичного отклонения double StdDev; for(i=prev_calculated; i<rates_total; i++) { StdDev=MyStdDev(Last,ChannelPeriod,i); if(StdDev>0.00001) // Защита от отсутствия данных ExtStdDevBuffer[i]=(Last[i]+2*StdDev-iMAOnArrayMQL4(Last,0,ChannelPeriod,0,MODE_SMA,i))/(4*StdDev); } return(rates_total); } //----------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------- // Calculation StdDev -----------------------------------------------| // StdDev = SQRT (SUM [(S(i) - SMA(i))^2, N] / N) | double MyStdDev(double &array[], int BandsPeriod, int Index) { double ds, sum, center; sum = 0; center = iMAOnArrayMQL4(array,0,BandsPeriod,0,MODE_SMA,Index); for(int i = 0; i < BandsPeriod; i++) { ds = array[Index+i] - center; sum += ds * ds; } sum = MathSqrt (sum / BandsPeriod); return (sum); } //----------------------------------------------------------------------------------------- //----------------------------------------------------------------------------------------- double iMAOnArrayMQL4(double &array[], int total, int period, int ma_shift, int ma_method, int shift) { double buf[],arr[]; if(total==0) total=ArraySize(array); if(total>0 && total<=period) return(0); if(shift>total-period-ma_shift) return(0); switch(ma_method) { case MODE_SMA : { total=ArrayCopy(arr,array,0,shift+ma_shift,period); if(ArrayResize(buf,total)<0) return(0); double sum=0; int i,pos=total-1; for(i=1;i<period;i++,pos--) sum+=arr[pos]; while(pos>=0) { sum+=arr[pos]; buf[pos]=sum/period; sum-=arr[pos+period-1]; pos--; } return(buf[0]); } case MODE_EMA : { if(ArrayResize(buf,total)<0) return(0); double pr=2.0/(period+1); int pos=total-2; while(pos>=0) { if(pos==total-2) buf[pos+1]=array[pos+1]; buf[pos]=array[pos]*pr+buf[pos+1]*(1-pr); pos--; } return(buf[shift+ma_shift]); } case MODE_SMMA : { if(ArrayResize(buf,total)<0) return(0); double sum=0; int i,k,pos; pos=total-period; while(pos>=0) { if(pos==total-period) { for(i=0,k=pos;i<period;i++,k++) { sum+=array[k]; buf[k]=0; } } else sum=buf[pos+1]*(period-1)+array[pos]; buf[pos]=sum/period; pos--; } return(buf[shift+ma_shift]); } case MODE_LWMA : { if(ArrayResize(buf,total)<0) return(0); double sum=0.0,lsum=0.0; double price; int i,weight=0,pos=total-1; for(i=1;i<=period;i++,pos--) { price=array[pos]; sum+=price*i; lsum+=price; weight+=i; } pos++; i=pos+period; while(pos>=0) { buf[pos]=sum/weight; if(pos==0) break; pos--; i--; price=array[pos]; sum=sum-lsum+price*period; lsum-=array[i]; lsum+=price; } return(buf[shift+ma_shift]); } default: return(0); } return(0); } //----------------------------------------------------------------------------------------- Виктор 2012.05.05 14:23 #7347 インジケーター ファイル: Spread_O.mq5 7 kb 削除済み 2012.05.06 09:21 #7348 なぜか、「開始」ボタンを押すと、最初の入金レベルからではなく、前回のテストが終了したレベルからテストが行われる。4ではそのような問題はありません。初回入金額からテストを始めるには? Aleksey Rodionov 2012.05.06 11:57 #7349 私の携帯電話のブラウザでは、ウェブサイト上のすべてを見ることができないので、PDF形式のテキストをダウンロードするための直接のリンクを教えてください。 --- 2012.05.06 12:37 #7350 Zeleniy: 私のスマホのブラウザではホームページの全てを見ることができないので、PDFで教科書をダウンロードできる直リンクを教えてください。 教科書はなく、ヘルプがあるだけです。 1...728729730731732733734735736737738739740741742...3185 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
混乱」を発見。
なぜコンパイラは2番目のb 変数の定義を好まないのでしょうか?
また、一般的に、このような場合、どのように対処すればよいのでしょうか?
ディファインが好きではないのです。
配列の次元 の変数の型が違うというエラーが表示されるだけです。
次元の定数のみ指定可能です。
彼が嫌いなのは定義ではないのです。
また、「配列の次元 の変数の型が間違っている」というエラーも発生します。
次元で指定できるのは定数のみ
定数もうまくいかず、エラーになります。
アクセス指定子
アクセス指定子は、変数や構造体、クラスのメンバへのアクセス方法をコンパイラに指示します。
const指定 子は、 変数を定数とすることを宣言し、この変数の値がプログラムの実行過程で変更されることを許さない ものです。 変数の初期化は、宣言時に一度だけ行うことができます。
選択肢は2つだけという意味です。
int Arr[100]
または
#define r 100
int Arr[r].
残りはArrayResize
理解できない。チャート上にEAを置いたところ、「Experts」タブにこのメッセージが表示されました。Expert Advisorはとにかく作業を続けます。これはエラーではなく、警告です。何についての警告ですか?
定数も動作せず、エラーになります。
アクセス指定子
アクセス指定子は、変数や構造体、クラスのメンバへのアクセス方法をコンパイラに指示します。
const指定 子は、 変数を定数とすることを宣言し、この変数の値がプログラムの実行過程で変更されることを許さない ものである。 変数の初期化は、宣言時に一度だけ行うことができます。
定数変数は定数ではない!一度だけ初期化が許される、つまり、メモリが確保される変数である。
定数のタスクは、実行時にメモリを占有することなく、計算されてコードに挿入されることである。
定数はconst AA=11となる。
したがって、コンパイラは悪態をつくことになる。const AA=11 ならば、文句は言われない。
何が問題なのか、教えてください。
ChannelPeriod = 100の最後のインターバルで、インジケータの測定値に急激な上方へのシフトが見られますが、最後の100本を超えるとすべて正常に表示されます。
どなたか修理方法をご存じないでしょうか?
私のスマホのブラウザではホームページの全てを見ることができないので、PDFで教科書をダウンロードできる直リンクを教えてください。