アレイが範囲外ですか?助けて?
Results 1 to 9 of 9

Thread: アレイが範囲外ですか?助けて?

  1. #1
    編集:Johnvanwijkへの修正のおかげです!
    https://www.forexgroove.com/trading-...dom-calls.html


    ねえ、みんな、
    だから私はいくつかのものを描画しようとしてきましたが、それは私に範囲外のエラー配列を与えています。
    緑色の矢印は完全に描画されますが、赤色の矢印は機能しません。

    誰かが私に何を間違えているか教えてもらえるとすばらしいことになるでしょう。

    それは、私が知っている限り、まだそこにないキャンドルにアクセスしようとしているからではありません。
    私はいくつかの人々が利用可能なバーを過ぎていると言うかもしれませんが、私は私のチャートがあると確信している1000の限界でもテストして、それはまだ範囲外の私を与える。

    これはコードです:

    挿入されたコード// --------------------------------------------- --------------------- /| FractalsExercise.mq4 |/| |/| https://www.mql5.com |/ ----------------------------------------------- ------------------- #property copyright #property link https://www.mql5.com #property version 1.00#プロパティーstrict #property indior_chart_window double Highs#91; #93 ;;ダブルLows#91;#93 ;;/ ----------------------------------------------- ------------------- /|カスタムインジケータ初期化関数|/ ----------------------------------------------- ------------------- int OnInit(){//---描画スタイルSetIndexStyle(0、DRAW_ARROW、EMPTY、1、clrGreen); SetIndexArrow(0、234); SetIndexStyle(1、DRAW_ARROW、EMPTY、1、clrRed); SetIndexArrow(1、233);/---インジケータバッファSetIndexBuffer(0、Highs); SetIndexBuffer(1、Lows);/--- return(INIT_SUCCEEDED); }/ ---------------------------------------------- -------------------- /|カスタムインジケータ反復関数|/ ----------------------------------------------- ------------------- int OnCalculate(const int rates_total、const int prev_calculated、const datetime time#91;#93; const double open#91;#93; #93 ;;#93;#93 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;있고; 、const int spread#91;#93;){//--- int i = 1; int ii = 1; int Limit =バー - 1; (ハイ#91; i#93; gt;ハイ#91; i#93; gt;ハイ#91; i#93; 1#93;){Highs#91; i#93; =高い#91; i#93 ;; }} i ; (Low#91; ii#93; lt; Low#91; ii); if(Low#91; ii#93; lt; Low#91; ii 1#93; - 1#93;){Lows#91; ii#93; =低い#91; ii#93 ;; }} ii ; }/---次の呼び出しのためにprev_calculatedの戻り値return(rates_total); }/ ---------------------------------------------- --------------------

    ありがとう!

  2. #2
    whileループを2つのインジケーターに分割すると、1つのエラーでは完全に機能しますが、一緒にいるときには機能しません。それはそこにないものにアクセスするのではない。だから私はなぜそれが範囲外だと言うのか分からない。

  3. #3

    Quote Originally Posted by ;
    ねえ、だから私はいくつかのものを描画しようとしてきましたが、それは私に範囲外のエラー配列を与えています。緑色の矢印は完全に描画されますが、赤色の矢印は機能しません。誰かが私に何を間違えているか教えてもらえるとすばらしいことになるでしょう。それは、私が知っている限り、まだそこにないキャンドルにアクセスしようとしているからではありません。私はいくつかの人々が利用可能なバーを過ぎていると言うかもしれませんが、私は私のチャートがあると確信している1000の限界でもテストして、それはまだ範囲外の私を与える。これはコードです:// ------------------------------------------ ------------------------ ...
    各ループで、以下の例のようにブレークして、使用可能なバーを超えないようにしてください。if(i gt; = Bars-1)break;挿入されたコードif(ii gt = = Bars-1)break;

  4. #4
    添付ファイル1件
    Quote Originally Posted by ;
    {quote}各ループで、以下の例のようなものでブレークして、利用可能なバーを越えないようにしてください:if(i gt; = Bars-1)break; if(ii gt = = Bars-1)break;
    私が見ることができることは、私の限界がすでに行っていることですが、私はまだテストのためにコードに挿入していますが、エラーは継続します。なぜ私にエラーを与えているのか、正直に分かりません。これはこれまでの結果の写真です。それは赤い矢印が上を向いているLowsのために同じことをするべきです。また、人々にアイデアを伝えるためにエラーを表示することもできます。

  5. #5

    Quote Originally Posted by ;
    {引用}私が見ることができるのは、私の限界がすでに行っているものですが、私はまだテストのためにコードに挿入し、いくつかの位置で試してみましたが、エラーはそのままです。なぜ私にエラーを与えているのか、正直に分かりません。これはこれまでの結果の写真です。それは赤い矢印が上を向いているLowsのために同じことをするべきです。また、人々にアイデアを伝えるためにエラーを表示することもできます。 {画像}
    どのラインが71ですか?

  6. #6

    Quote Originally Posted by ;
    {引用} 71行はどれですか?
    それは低[ii] =低[ii]であろう。 2番目のwhileループ。

  7. #7
    こんにちはAntiVi、必要なバッファの数を指定する必要があります。#property indior_chart_windowの後のコードの最初の次の変更は、うまく動作します..... #property indior_buffers 2乾杯!ジョン挿入コード// -------------------------------------------- ---------------------- /| FractalsExercise.mq4 |/| AntiVi |/| https://www.mql5.com |/ ----------------------------------------------- ------------------- #property copyright AntiVi#プロパティーリンクhttps://www.mql5.com #propertyバージョン1.00 #property strict #property indior_chart_window/START ADDED JvW #property indior_buffers 2/END ADDED JvW double Highs#91;#93 ;;ダブルLows#91;#93 ;;/ ----------------------------------------------- ------------------- /|カスタムインジケータ初期化関数|/ ----------------------------------------------- ------------------- int OnInit(){//---描画スタイルSetIndexStyle(0、DRAW_ARROW、EMPTY、1、clrGreen); SetIndexArrow(0、234); SetIndexStyle(1、DRAW_ARROW、EMPTY、1、clrRed); SetIndexArrow(1、233);/---インジケータバッファSetIndexBuffer(0、Highs); SetIndexBuffer(1、Lows);/--- return(INIT_SUCCEEDED); }/ ---------------------------------------------- -------------------- /|カスタムインジケータ反復関数|/ ----------------------------------------------- ------------------- int OnCalculate(const int rates_total、const int prev_calculated、const datetime time#91;#93; const double open#91;#93; #93 ;;#93;#93 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;있고; 、const int spread#91;#93;){//--- int i = 1; int ii = 1; int Limit =バー - 1; (ハイ#91; i#93; gt;ハイ#91; i#93; gt;ハイ#91; i#93; 1#93;){Highs#91; i#93; =高い#91; i#93 ;; }} i ; (Low#91; ii#93; lt; Low#91; ii); if(Low#91; ii#93; lt; Low#91; ii 1#93; - 1#93;){Lows#91; ii#93; =低い#91; ii#93 ;; }} ii ; }/---次の呼び出しのためにprev_calculatedの戻り値return(rates_total); }/ ---------------------------------------------- --------------------

  8. #8

    Quote Originally Posted by ;
    こんにちは、必要なバッファの数を指定する必要があります。#property indior_chart_windowの後のコードの最初の次の変更は、うまく動作します..... #property indior_buffers 2乾杯!ジョン// ---------------------------------------------- -------------------- /| FractalsExercise.mq4 |/| |/|
    https://www.mql5.com|/ ----------------------------------------------- ------------------- #property copyright #property link https://www.mql5.com #property version 1.00 #property strict #property ...
    あなたは天才です。修正がとても簡単だとは思えません。私はこれを私の経験不足のせいにして、自分自身でそれを学ぶつもりです。私はそれを把握しようとしている良い5時間を費やし、私が見つけたものは何も修正しなかった回避策でした。最初の投稿を編集して修正を加えて、探している人が簡単に答えられるようにします!どうもありがとう!

  9. #9

    Quote Originally Posted by ;
    あなたは天才です。修正がとても簡単だとは思えません。私はこれを私の経験不足のせいにして、自分自身でそれを学ぶつもりです。私はそれを把握しようとしている良い5時間を費やし、私が見つけたものは何も修正しなかった回避策でした。最初の投稿を編集して修正を加えて、探している人が簡単に答えられるようにします!どうもありがとう!
    こんにちはAntiVi、Johnが共有していることに加えて、組み込みのvarsからのデータに頼るのではなく、OnCalculate関数にargとして渡されたデータを使用する習慣を身につけたいと思っています。また、ルックバックが正しく行われていることを確認する必要があります。すべてのチックでループ全体(すべてのチャートデータ)を処理する必要はありません。更新が必要なインジケータデータの部分のみを処理する必要があります。ここでは、OnCalculate関数をより使いやすくする方法の例を示します。挿入されたコード#property strict #property indior_chart_window/START ADDED JvW #property indior_buffers 2/END ADDED JvW double Highs#91;#93 ;;ダブルLows#91;#93 ;;/ ----------------------------------------------- ------------------- /|カスタムインジケータ初期化関数|/ ----------------------------------------------- ------------------- int OnInit(){//---描画スタイルSetIndexStyle(0、DRAW_ARROW、EMPTY、1、clrGreen); SetIndexArrow(0,234); SetIndexStyle(1、DRAW_ARROW、EMPTY、1、clrRed); SetIndexArrow(1,233);/---インジケータバッファSetIndexBuffer(0、Highs); SetIndexBuffer(1、Lows);リターン(INIT_SUCCEEDED); }/ ---------------------------------------------- -------------------- /|カスタムインジケータ反復関数|/ ----------------------------------------------- ------------------- int OnCalculate(const int rates_total、const int prev_calculated、const datetime time#91;#93; const double open#91;#93; #93 ;;#93;#93 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;있고; 、const int spread#91;#93;){//--- int limit = rates_total - prev_calculated - 2;限界=限界lt; 1? 1:限界; (高い#91; i#93; gt;高い#91; i 1#93;高い#91; i#93; gt;高い) #91; i-1#93;)#91; i#93; =高い#91; i#93 ;;低い#91; i#93;低い#91; i 1#93;低い#91; i#93;低い#91; i-1#93; ; =低い#91; i#93 ;; }/---次の呼び出しのためにprev_calculatedの戻り値return(rates_total); }

投稿権限

  • Youma新しいスレッドを投稿しない
  • Youmaは返信しない
  • あなたは添付ファイルを投稿しないかもしれない
  • Youma Notedityourposts
  •  
  • スマイリーはオンです
  • スマイリーはオンです
  • [IMG]コードがオンです
  • [VIDEO]コードがオンです
  • HTMLコードがオフです
This website uses cookies
We use cookies to store session information to facilitate remembering your login information, to allow you to save website preferences, to personalise content and ads, to provide social media features and to analyse our traffic. We also share information about your use of our site with our social media, advertising and analytics partners.