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

 
Artyom Trishkin:
ターミナルで具体的にどこからインジケータを起動しているのか?
私のであれば、C:㊦MetaQuotes㊦Terminal㊦CE01488447B8E5332C971089AB90 BBであれば、正直どこから動いているかわかりませんが、以前問題をプリントして(BB自体が4桁以上出る場合はわかりました)、このフォルダからBBもと りました。
 
Павел Козлов:
だから、なんとなくコードの中に入って、こういうものを見てみたんです。

皆さんはどうかわかりませんが、私はindicesとexpertがある場所が2つあります。C: \Program Files (x86)\ MT4MQL4indicators と C:\UsersAppDataRoamingMetaQuotesTerminal (this folder opens from terminal File-Open data directory) in both places I looked for code and it is identical.私はこの二つの場所でコードを探しました。また的外れなことを言っているかもしれないので、知らない人のためにはっきり言ってくれないか。カスタムとスタンダードの違いと、両方が手に入る場所とは?

標準のものはBollingerBands、カスタマイズされたものはBandsと呼ばれ、それぞれ異なる場所に配置されています。


 
Artyom Trishkin:
ターミナルで具体的にどこからインジケータを実行するのでしょうか?

ポータブルモードと馴染みがないのでは?

 
Alexey Viktorov:

標準のものはBollingerBands、カスタムのものはBandsと呼ばれ、それぞれ別の場所に配置されています。


ありがとうございます。どこに何があるのか、携帯電話から陛下に説明することはできません。
だから、あるものを起動するけど、コードは別のものを見ている、ということを言いたかったんです。
 
Alexey Viktorov:

ポータブルモードに慣れていないのでしょう。

私はこのモードには本当に疎く、この問題で別途作成したスレッドで私の知識レベルを暴露してしまいましたが、まだ愚かなことをお許しください。それでも問題を示してくれたので、これから解決策を考えてみます。アルテムさんのアドバイス、ありがとうございました。
 
Павел Козлов:
私はこのモードには本当に疎く、この問題で別途作成したスレッドで私の知識レベルを暴露してしまいましたが、まだ馬鹿なことをお許しください、私にとってあなたが思うほど簡単ではありませんでした。それでも問題を示してくれたので、これから解決策を考えてみます。アルテムさんのアドバイス、ありがとうございました。

無知で油断させるつもりは一切なかったんです。アルテムとの対話で、私から見てわからないことを聞いている、という単純明快なものでした。知らないことは恥ずべきことではなく、ごく普通のことです。

 
iCustom機能をマスターした私は、何を間違えているのだろう。コードを作った(例として一番上の行を 取り上げた)。でも、まだ4文字出るんですよ。DoubleToStringは5を出力しますが、デタラメで実データではありません。
double BUp = iCustom(NULL,0, "Bands",20,0,2,1,1);
Help, Help in codeをお願いします。プリンターではなく、Bands.ex4インジケーターのデータを私のインジケーター変数に書き込むだけです、例えば上のラインです。できれば変数に置き換えるのではなく、数値を使うことが望ましい。
 
Павел Козлов:
さて、iCustom機能をマスターした私は何を間違えているのでしょう。コードを作った(例として一番上の行を 取り上げた)。でも、まだ4文字出るんですよ。DoubleToStringは5を出すが、それはデタラメであり、実際のデータではない。プリンターではなく、Bands.ex4インジケーターのデータを私のインジケーターの変数に書き込むだけです、例えば上の線に。数値は変数に置き換えないで使用することが望ましい。

OnTick()は現在動作しないので、OnInit()内にコードを配置します。


ふむふむ:よく読んでませんでした。そのフレーズには気づきませんでした。

数値は変数に置き換えないで使用することが望ましい。


しかし、iCustomに数値を入れるか変数を入れるかは関係ありません。

ファイル:
 
Павел Козлов:
iCustom機能をマスターした私は、何を間違えているのだろう。コードを作った(例として一番上の行を 取り上げた)。でも、まだ4文字出るんですよ。DoubleToStringは5を出すが、それはデタラメであり、実際のデータではない。プリンターではなく、Bands.ex4インジケーターのデータを私のインジケーターの変数に書き込むだけです、例えば上の線に。できれば数値で表現し、変数で置き換えないようにしてください。
iCustom、iBandsは戻り値を丸めないので、チェックが間違っています。
   double   BUp = iCustom(NULL,0,"Bands",20,0,2.0,1,1);
   Print(DoubleToString(BUp,16));
 

インジケーターがレンダリングされない原因について教えてください。いずれはZigZagのようなものを作りたいと思っています。

//+------------------------------------------------------------------+
//|                                                      ProjectName |
//|                                      Copyright 2012, CompanyName |
//|                                       http://www.companyname.net |
//+------------------------------------------------------------------+
#property link      ""
#property version   "1.00"
#property strict
#property indicator_chart_window
//--------------------------------
#property indicator_buffers 1       // Количество буферов
#property indicator_color1 Blue     // Цвет линии 0 буфера
double Buf_0[];
double Max_B=0,
Min_B=10000;
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
int init()
  {
   SetIndexBuffer(0,Buf_0);                  //Назначение массива буфера
   SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,1); //стильлинии
   return(0);
  }
//------------------------------
int start()
  {
   int i;
   int n,
   step=10;
   int Counted_bars;
   double Max_A,
   Min_A;
   Counted_bars=IndicatorCounted();
   i=Bars-Counted_bars-1;
//--------------------------------------------------------------------------------------------------------------+
   while(i>=0) //цикл, который считает просчитывает значение на i-ом баре               
     {
      Max_A=High[i];                         //присвоили максимальное значение i-ого бара переменной Max_A            
      Min_A=Low[i];                          //присвоили минимальное значение i-ого бара переменной Min_A
      if(Max_A>Max_B)
         Max_B=Max_A;
      if(Min_A<Min_B)
         Min_B=Min_A;
      //------------------------------------------------------------------------------------------------------------- 
      if(i>=step)
        {
         for(n=0;n<step;n++) //цикл, который будет сравнивать значения баров на определённом интервале        
           {
            if(High[i+n]>Max_A)
              {
               Max_A=High[i+n];
              }
            else
              {
               if(High[i+n]<Min_A)
                  Min_A=High[i+n];
              }
           }
        }
      if(i<step)
        {
         for(n=step;n>0;n--) //цикл, который будет сравнивать значения баров на определённом интервале        
           {
            if(High[i-n]>Max_A)
              {
               Max_A=High[i-n];
              }
            else
              {
               if(High[i-n]<Min_A)
                  Min_A=High[i-n];
              }
           }
        }
      if(Max_A>Max_B)
        {
         Buf_0[i]=Max_A;
        }
      else
        {
         if(Min_A<Min_B)
            Buf_0[i]=Min_A;
        }
      i--;
     }
   return(0);
  }
//+------------------------------------------------------------------+
理由: