MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 695 1...688689690691692693694695696697698699700701702...1953 新しいコメント Artyom Trishkin 2018.11.17 19:34 #6941 psyman:なぜか15時からのループでバーがつかめない。 条件としてif(i<24)と書くと、ログにはその日の各バーの時刻が表示されますが、必要な条件を満たしていません。 また、どのようなタイムフレームでインジケータを動かしているのでしょうか? psyman 2018.11.17 21:41 #6942 トレーディング、自動売買システム、ストラテジーテストに関するフォーラム MQL4初心者のための質問、アルゴリズムやコードに関するヘルプとディスカッション アルチョム・トリシキン さん 2018.11.17 20:33 また、どのようなタイムフレームでインジケータを動かしているのでしょうか?いずれも時計回り。 Artyom Trishkin 2018.11.17 23:32 #6943 psyman:いずれもSentinel。効くんです。 //+------------------------------------------------------------------+ //| TestHour.mq5 | //| Copyright 2018, MetaQuotes Software Corp. | //| https://mql5.com/ru/users/artmedia70 | //+------------------------------------------------------------------+ #property copyright "Copyright 2018, MetaQuotes Software Corp." #property link "https://mql5.com/ru/users/artmedia70" #property version "1.00" #property indicator_separate_window #property indicator_buffers 1 #property indicator_plots 1 #property strict //--- plot Hour #property indicator_label1 "Hour" #property indicator_type1 DRAW_HISTOGRAM #property indicator_color1 clrRed #property indicator_style1 STYLE_SOLID #property indicator_width1 #ifdef __MQL4__ 2 #else 6 #endif //--- input parameters input uchar InpHour = 15; // The required hour //--- indicator buffers double BufferHour[]; //--- global variables int hour_req; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- set global variables hour_req=int(InpHour>23 ? 23 : InpHour); //--- indicator buffers mapping SetIndexBuffer(0,BufferHour,INDICATOR_DATA); //--- setting indicator parameters IndicatorSetString(INDICATOR_SHORTNAME,"Hour("+(string)hour_req+")"); #ifdef __MQL4__ SetIndexLabel(0,"Hour("+(string)hour_req+")"); #else PlotIndexSetString(0,PLOT_LABEL,"Hour("+(string)hour_req+")"); ArraySetAsSeries(BufferHour,true); #endif IndicatorSetInteger(INDICATOR_DIGITS,0); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ 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[]) { //--- Установка массивов буферов как таймсерий #ifdef __MQL5__ ArraySetAsSeries(time,true); #endif //--- Проверка количества доступных баров if(rates_total<1) return 0; //--- Проверка и расчёт количества просчитываемых баров int limit=rates_total-prev_calculated; if(limit>1) { limit=rates_total-1; ArrayInitialize(BufferHour,0); } //--- Подготовка данных //--- Расчёт индикатора for(int i=limit; i>=0 && !IsStopped(); i--) { int hour=GetTimeHour(time[i]); BufferHour[i]=(hour==hour_req ? (hour>0 ? hour : 0.1) : 0); } //--- return value of prev_calculated for next call return(rates_total); } //+------------------------------------------------------------------+ //| Возвращает час указанного времени | //+------------------------------------------------------------------+ int GetTimeHour(const datetime time) { #ifdef __MQL4__ return TimeHour(time); #endif MqlDateTime tm; if(!TimeToStruct(time,tm)) return WRONG_VALUE; return tm.hour; } //+------------------------------------------------------------------+ psyman 2018.11.18 10:47 #6944 ありがとうございます。でも、経験や知識の負担がない人にとっては、とても複雑で、混乱しますよ :-) BufferHour[i]=(hour==hour_req ? (hour>0 ? hour : 0.1) : 0); バッファにデータを転送する際に、なぜチェックアワー>0にするのか?また、そうでない場合、なぜ0.1を割り当てるのでしょうか? メインチャートでハイライトをしたいのですが、線ではなく、月、水、水...の曜日 順でSetIndexArrow(0, 140); (もっと簡単な方法があるのかもしれませんが、今のところ他に思いつきません)、なぜかメインウィンドウの4ではあなたのコードを動かすことができず、5ではすでにそのプロパティがありません。 Artyom Trishkin 2018.11.18 19:02 #6945 psyman:ありがとうございます。でも、経験や知識の負担がない人にとっては、とても複雑で、混乱しますよ :-) バッファにデータを転送する際に、なぜチェックアワー>0に するのか?また、そうでない場合、なぜ0.1を割り当てるのでしょうか? メインチャートでハイライトをしたいのですが、線ではなく、月、水、水...の曜日 順でSetIndexArrow(0, 140); (もっと簡単な方法があるのかもしれませんが、今のところ他に思いつきません) しかし、なぜかメインウィンドウの4ではあなたのコードが動作せず、5ではそのようなプロパティは存在しません。バッファに時値が格納される。また、時分が0であれば、ヒストグラムは描画されません。そこで、時間がゼロかどうかを確認し(設定でゼロ時間を検索するように設定しています)、ゼロであれば、時間の値(ゼロ)ではなく、0.1をバッファに入力して、ヒストグラム列を表示させる必要があるのです。これは、インジケータDigitsが0に設定されているため、データウィンドウに0.1ではなく、0という値が表示されます。 Artyom Trishkin 2018.11.18 19:21 #6946 psyman:ありがとうございます。でも、経験や知識の負担がない人にとっては、とても複雑で、混乱しますよ :-) バッファにデータを転送する際に、なぜチェックアワー>0にするのか?また、そうでない場合、なぜ0.1を割り当てるのでしょうか? メインチャートでハイライトをしたいのですが、線ではなく、月、水、水...の曜日 順で SetIndexArrow(0, 140);(もっと簡単な方法があるのかもしれませんが、今のところ他に思いつきません)、なぜかメインウィンドウの4ではあなたのコードが動作しませんし、5ではすでにそのプロパティは 存在しません。PlotIndexSetInteger(0,PLOT_ARROW,140); ただし、週数と同じ数のバッファを作成する必要があります。そして、それぞれのバッファには、140から149までのアローコードが与えられている - 1,2,3,4,5,6,7,8,9,10 - 10週間あれば1年は大丈夫?たった70日のことだ。それとも、どうしたかったのでしょうか? Northwest 2018.11.18 19:53 #6947 皆さん、ごきげんよう。助けてください!このBB MACD - MetaTrader 4用インジケータは、私がここからダウンロードしたものですhttps://www.mql5.com/en/code/9325この指標は、2つのサイクルで算出されます。直前のMACDバッファのデータを使ってボリンジャーバンドを算出します。メインサイクルのカウント方向を変更し、1サイクルで全てを一気に計算する試みと、同時に同時に、ボリンジャーバンドを計算する際の追加サイクルをなくすために、大失敗に終わった。このインジケーターは、手を加えていないものと同じ結果をもたらしますが、ヒストリーを計算する際にターミナルに乱暴なブレーキがかかります。1ヶ月の時間軸で放置しても気づかないが、15分の時間軸で放置した場合再起動が必要です。 どうしたらいいのか迷ってしまいますね。 プログラムの中で最も遅い場所を計算する方法を提案できる人に尋ねることができます。 ヒントをありがとうございました。 これがオリジナルで、以下は同じものを私が変更したものです。 //+------------------------------------------------------------------+ //| Custom BB_MACD.mq4 | //| Copyright © 2005, adoleh2000 | //| http://www.metaquotes.net/ | //+------------------------------------------------------------------+ #property copyright "Copyright © 2005, adoleh2000" #property link "http://www.metaquotes.net/" //---- indicator settings #property indicator_separate_window #property indicator_buffers 4 #property indicator_color1 Lime //bbMacd up #property indicator_color2 Magenta //bbMacd up #property indicator_color3 Blue //Upperband #property indicator_color4 Red //Lowerband //---- indicator parameters extern int FastLen = 12; extern int SlowLen = 26; extern int Length = 10; extern double StDv = 2.5; //---- int loopbegin; int shift; double zeroline; //---- indicator buffers double ExtMapBuffer1[]; // bbMacd double ExtMapBuffer2[]; // bbMacd double ExtMapBuffer3[]; // Upperband Line double ExtMapBuffer4[]; // Lowerband Line //---- buffers double bbMacd[]; double Upperband[]; double Lowerband[]; double avg[]; double bbMacdline; double sDev; double mean; double sumSqr; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- 6 additional buffers are used for counting. IndicatorBuffers(8); //---- drawing settings SetIndexBuffer(0, ExtMapBuffer1); // bbMacd line SetIndexStyle(0, DRAW_ARROW); SetIndexArrow(0, 108); IndicatorDigits(Digits + 1); //---- SetIndexBuffer(1, ExtMapBuffer2); // bbMacd line SetIndexStyle(1, DRAW_ARROW); SetIndexArrow(1, 108); IndicatorDigits(Digits + 1); //---- SetIndexBuffer(2, ExtMapBuffer3); // Upperband line SetIndexStyle(2, DRAW_LINE, STYLE_SOLID, 1); IndicatorDigits(Digits + 1); //---- SetIndexBuffer(3, ExtMapBuffer4); // Lowerband line SetIndexStyle(3, DRAW_LINE, STYLE_SOLID, 1); IndicatorDigits(Digits + 1); //---- SetIndexBuffer(4, bbMacd); SetIndexBuffer(5, Upperband); SetIndexBuffer(6, Lowerband); SetIndexBuffer(7, avg); //---- name for DataWindow and indicator subwindow label IndicatorShortName("BB MACD(" + FastLen + "," + SlowLen + "," + Length+")"); SetIndexLabel(0, "bbMacd"); SetIndexLabel(1, "Upperband"); SetIndexLabel(2, "Lowerband"); //---- initialization done return(0); } //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- return(0); } //+------------------------------------------------------------------+ //| Custom BB_MACD | //+------------------------------------------------------------------+ int start() { int limit; int counted_bars = IndicatorCounted(); //---- check for possible errors if(counted_bars < 0) return(-1); //---- last counted bar will be recounted if(counted_bars > 0) counted_bars--; limit = Bars - counted_bars; //---- for(int i = 0; i < limit; i++) bbMacd[i] = iMA(NULL, 0, FastLen, 0, MODE_EMA, PRICE_CLOSE, i) - iMA(NULL, 0, SlowLen, 0, MODE_EMA, PRICE_CLOSE, i); //---- for(i = 0; i < limit; i++) { avg[i] = iMAOnArray(bbMacd, 0, Length, 0, MODE_EMA, i); sDev = iStdDevOnArray(bbMacd, 0, Length, MODE_EMA, 0, i); Upperband[i] = avg[i] + (StDv * sDev); Lowerband[i] = avg[i] - (StDv * sDev); ExtMapBuffer1[i]=bbMacd[i]; // Uptrend bbMacd ExtMapBuffer2[i]=bbMacd[i]; // downtrend bbMacd ExtMapBuffer3[i]=Upperband[i]; // Upperband ExtMapBuffer4[i]=Lowerband[i]; // Lowerband //---- if(bbMacd[i] > bbMacd[i+1]) ExtMapBuffer2[i] = EMPTY_VALUE; //---- if(bbMacd[i] < bbMacd[i+1]) ExtMapBuffer1[i] = EMPTY_VALUE; } //---- done return(0); } //+------------------------------------------------------------------+ //================ //+------------------------------------------------------------------+ //| Custom BB_MACD.mq4 | //| Copyright © 2005, adoleh2000 | //| http://www.metaquotes.net/ | //+------------------------------------------------------------------+ /* Осторожно!!! В том коде мной изменено направление расчёта главного цикла. Осторожно!!! Этот индикатор очень медленно выполняется!!! Его можно бросить только на недельный или месячный таймфрейм где в истории мало баров, если ниже 4х часов то терминал вешается!!! */ #property copyright "Copyright © 2005, adoleh2000" #property link "http://www.metaquotes.net/" //---- indicator settings #property indicator_separate_window #property indicator_buffers 4 #property indicator_color1 Lime //bbMacd up #property indicator_color2 Magenta //bbMacd up #property indicator_color3 Blue //Upperband #property indicator_color4 Red //Lowerband //---- indicator parameters extern int FastLen = 12; extern int SlowLen = 26; extern int Length = 10; extern double StDv = 2.5; //---- int loopbegin; int shift; double zeroline; //---- indicator buffers double ExtMapBuffer1[]; // bbMacd double ExtMapBuffer2[]; // bbMacd double ExtMapBuffer3[]; // Upperband Line double ExtMapBuffer4[]; // Lowerband Line //---- buffers double bbMacd[]; double Upperband[]; double Lowerband[]; double avg[]; double bbMacdline; double sDev; double mean; double sumSqr; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- 6 additional buffers are used for counting. IndicatorBuffers(8); //---- drawing settings SetIndexBuffer(0, ExtMapBuffer1); // bbMacd line SetIndexStyle(0, DRAW_ARROW); SetIndexArrow(0, 108); IndicatorDigits(Digits + 1); //---- SetIndexBuffer(1, ExtMapBuffer2); // bbMacd line SetIndexStyle(1, DRAW_ARROW); SetIndexArrow(1, 108); IndicatorDigits(Digits + 1); //---- SetIndexBuffer(2, ExtMapBuffer3); // Upperband line SetIndexStyle(2, DRAW_LINE, STYLE_SOLID, 1); IndicatorDigits(Digits + 1); //---- SetIndexBuffer(3, ExtMapBuffer4); // Lowerband line SetIndexStyle(3, DRAW_LINE, STYLE_SOLID, 1); IndicatorDigits(Digits + 1); //---- SetIndexBuffer(4, bbMacd); SetIndexBuffer(5, Upperband); SetIndexBuffer(6, Lowerband); SetIndexBuffer(7, avg); //---- name for DataWindow and indicator subwindow label IndicatorShortName("BB MACD-2(" + FastLen + "," + SlowLen + "," + Length+")"); SetIndexLabel(0, "bbMacd"); SetIndexLabel(1, "Upperband"); SetIndexLabel(2, "Lowerband"); //---- initialization done return(0); } //+------------------------------------------------------------------+ //| Custor indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- return(0); } //+------------------------------------------------------------------+ //| Custom BB_MACD | //+------------------------------------------------------------------+ int start() { int limit, i,MaxPeriod; int counted_bars = IndicatorCounted(); //---- check for possible errors if(counted_bars < 0) return(-1); //---- last counted bar will be recounted if(counted_bars > 0) counted_bars--; limit = Bars - counted_bars; if(counted_bars==0){ for(i=Bars-1; i>=1; i--) bbMacd[i]=0.0;//обнулим первый рассчитываемый массив MaxPeriod= MathMax(MathMax(FastLen,SlowLen), Length);//это самые старые бары в истории которые не будем рассчитывать limit=limit-MaxPeriod; } // //---- основной цикл for(i=limit; i>=1; i--){//ЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦ //В этом месте изменено направление пересчёта в основном цикле. //И все расчёты зависимых друг от друга буферов производятся последовательно в одном цикле. //Дополнительный цикл расчета удалён. bbMacd[i] = iMA(NULL, 0, FastLen, 0, MODE_EMA, PRICE_CLOSE, i) - iMA(NULL, 0, SlowLen, 0, MODE_EMA, PRICE_CLOSE, i); avg[i] = iMAOnArray(bbMacd, 0, Length, 0, MODE_EMA, i); sDev = iStdDevOnArray(bbMacd, 0, Length, MODE_EMA, 0, i); Upperband[i] = avg[i] + (StDv * sDev); Lowerband[i] = avg[i] - (StDv * sDev); ExtMapBuffer1[i]=bbMacd[i]; // Uptrend bbMacd ExtMapBuffer2[i]=bbMacd[i]; // downtrend bbMacd ExtMapBuffer3[i]=Upperband[i]; // Upperband ExtMapBuffer4[i]=Lowerband[i]; // Lowerband //---- if(bbMacd[i] > bbMacd[i+1]) ExtMapBuffer2[i] = EMPTY_VALUE; //---- if(bbMacd[i] < bbMacd[i+1]) ExtMapBuffer1[i] = EMPTY_VALUE; }//ЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦЦ //---- done return(0); } //+------------------------------------------------------------------+ BB MACD www.mql5.com BB_MACD Indicator. Alekseu Fedotov 2018.11.18 21:29 #6948 Northwest:皆さん、ごきげんよう。助けてください!このBB MACD - MetaTrader 4用インジケータは、私がここからダウンロードしたものですhttps://www.mql5.com/en/code/9325この指標は、2つのサイクルで算出されます。直前のMACDバッファのデータを使ってボリンジャーバンドを算出します。メインサイクルのカウント方向を変え、1サイクルで全てを一度に計算する試みと、同時に同時に、ボリンジャーバンドを計算する際の追加サイクルをなくすために、大失敗に終わった。このインジケーターは、手を加えていないものと同じ結果をもたらしますが、ヒストリーを計算する際にターミナルに乱暴なブレーキがかかります。1ヶ月の時間軸で放置しても気づかないが、15分の時間軸で放置した場合再起動が必要です。 どうしたらいいのか迷ってしまいますね。 プログラムの中で最も遅い場所を計算する方法を提案できる人に尋ねることができます。 ヒントをありがとうございました。 これがオリジナルで、以下は同じものを私が変更したものです。 //================ 全部返せ、コンピュータを虐めるな iBandsOnArray, iStdDevOnArray は、配列に格納されたデータに対して計算されます。 一方、配列は1ループで埋め尽くされる Northwest 2018.11.19 02:07 #6949 Alekseu Fedotov:すべてを元に戻し、コンピュータを酷使しないこと iBandsOnArray, iStdDevOnArray は、配列に格納されたデータに対して計算されます。 一方、配列は1サイクルで埋め尽くされる1.すべてを元に戻し、コンピュータを拷問しては いけません。 申し訳ありませんが、元に戻りません。 インジケーターを左から右へ数えるようにしなければなりません。 迷惑をかけているのではなく、本来の目的のために使っているのです。 2.iBandsOnArray, iStdDevOnArray は、配列に格納されたデータを用いて算出される。 はい、bbMacd[]配列のデータを使って計算されていますね。 3.1ループで配列が埋まる。 1では、それとも1では? 1つの配列を埋めるために、この配列が満たされる個人ループが必要だと言っているのでしょうか? 配列が一杯になり、それ以上の操作はできないのですか? なぜインジケータが遅くなるのか、その場所をどう計算するのかが重要なんです。 質問は増えるが、答えはない。 残念ながら、あなたは何の手がかりも示していない。 multiplicator 2018.11.19 02:34 #6950 EAのタイムフレーム変更時に再初期化を無効にするには? ここにいくつかの情報があります。 電子ブックOnDeinitとOnInitを実行しても、グローバルクラスのオブジェクトが変更されない。https://www.mql5.com/ru/forum/170952/page61#comment_6132824 mql4でも正しいですか? 1...688689690691692693694695696697698699700701702...1953 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
なぜか15時からのループでバーがつかめない。
条件としてif(i<24)と書くと、ログにはその日の各バーの時刻が表示されますが、必要な条件を満たしていません。
また、どのようなタイムフレームでインジケータを動かしているのでしょうか?
トレーディング、自動売買システム、ストラテジーテストに関するフォーラム
MQL4初心者のための質問、アルゴリズムやコードに関するヘルプとディスカッション
アルチョム・トリシキン さん 2018.11.17 20:33
また、どのようなタイムフレームでインジケータを動かしているのでしょうか?
いずれも時計回り。
いずれもSentinel。
効くんです。
ありがとうございます。でも、経験や知識の負担がない人にとっては、とても複雑で、混乱しますよ :-)
BufferHour[i]=(hour==hour_req ? (hour>0 ? hour : 0.1) : 0);
バッファにデータを転送する際に、なぜチェックアワー>0にするのか?また、そうでない場合、なぜ0.1を割り当てるのでしょうか?
メインチャートでハイライトをしたいのですが、線ではなく、月、水、水...の曜日 順でSetIndexArrow(0, 140); (もっと簡単な方法があるのかもしれませんが、今のところ他に思いつきません)、なぜかメインウィンドウの4ではあなたのコードを動かすことができず、5ではすでにそのプロパティがありません。
ありがとうございます。でも、経験や知識の負担がない人にとっては、とても複雑で、混乱しますよ :-)
バッファにデータを転送する際に、なぜチェックアワー>0に するのか?また、そうでない場合、なぜ0.1を割り当てるのでしょうか?
メインチャートでハイライトをしたいのですが、線ではなく、月、水、水...の曜日 順でSetIndexArrow(0, 140); (もっと簡単な方法があるのかもしれませんが、今のところ他に思いつきません) しかし、なぜかメインウィンドウの4ではあなたのコードが動作せず、5ではそのようなプロパティは存在しません。
バッファに時値が格納される。また、時分が0であれば、ヒストグラムは描画されません。そこで、時間がゼロかどうかを確認し(設定でゼロ時間を検索するように設定しています)、ゼロであれば、時間の値(ゼロ)ではなく、0.1をバッファに入力して、ヒストグラム列を表示させる必要があるのです。これは、インジケータDigitsが0に設定されているため、データウィンドウに0.1ではなく、0という値が表示されます。
ありがとうございます。でも、経験や知識の負担がない人にとっては、とても複雑で、混乱しますよ :-)
バッファにデータを転送する際に、なぜチェックアワー>0にするのか?また、そうでない場合、なぜ0.1を割り当てるのでしょうか?
メインチャートでハイライトをしたいのですが、線ではなく、月、水、水...の曜日 順で SetIndexArrow(0, 140);(もっと簡単な方法があるのかもしれませんが、今のところ他に思いつきません)、なぜかメインウィンドウの4ではあなたのコードが動作しませんし、5ではすでにそのプロパティは 存在しません。
PlotIndexSetInteger(0,PLOT_ARROW,140);
ただし、週数と同じ数のバッファを作成する必要があります。そして、それぞれのバッファには、140から149までのアローコードが与えられている - 1,2,3,4,5,6,7,8,9,10 - 10週間あれば1年は大丈夫?たった70日のことだ。それとも、どうしたかったのでしょうか?
再起動が必要です。
どうしたらいいのか迷ってしまいますね。
プログラムの中で最も遅い場所を計算する方法を提案できる人に尋ねることができます。
ヒントをありがとうございました。
これがオリジナルで、以下は同じものを私が変更したものです。
//================
再起動が必要です。
どうしたらいいのか迷ってしまいますね。
プログラムの中で最も遅い場所を計算する方法を提案できる人に尋ねることができます。
ヒントをありがとうございました。
これがオリジナルで、以下は同じものを私が変更したものです。
//================
全部返せ、コンピュータを虐めるな
iBandsOnArray, iStdDevOnArray は、配列に格納されたデータに対して計算されます。
一方、配列は1ループで埋め尽くされる
すべてを元に戻し、コンピュータを酷使しないこと
iBandsOnArray, iStdDevOnArray は、配列に格納されたデータに対して計算されます。
一方、配列は1サイクルで埋め尽くされる
1.すべてを元に戻し、コンピュータを拷問しては いけません。
申し訳ありませんが、元に戻りません。 インジケーターを左から右へ数えるようにしなければなりません。
迷惑をかけているのではなく、本来の目的のために使っているのです。
2.iBandsOnArray, iStdDevOnArray は、配列に格納されたデータを用いて算出される。
はい、bbMacd[]配列のデータを使って計算されていますね。
3.1ループで配列が埋まる。
1では、それとも1では?
1つの配列を埋めるために、この配列が満たされる個人ループが必要だと言っているのでしょうか?
配列が一杯になり、それ以上の操作はできないのですか?
なぜインジケータが遅くなるのか、その場所をどう計算するのかが重要なんです。
質問は増えるが、答えはない。
残念ながら、あなたは何の手がかりも示していない。
EAのタイムフレーム変更時に再初期化を無効にするには?
ここにいくつかの情報があります。
https://www.mql5.com/ru/forum/170952/page61#comment_6132824
mql4でも正しいですか?