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

 
Taras Slobodyanik:

私のコードでは、long-ChartIDを一時的なGlobal Variableに書き込んでいます。

目視では、F3を押すとゼロ(または別の別の値)が表示されます。
これは、端末がdoubleの値だと思って表示しようとするのですが、私たちはlongという全く異なる数値フォーマットを与えてしまったために起こります。

この値を普通のdoubleとして読み返すと、とんでもないことになります。
私のコードで読まれると、また長くなります(保存したのと同じもの)。
ターミナルウィンドウでこの変数を手動でクリックすると、ターミナルがスワップを検出するため、リセットされます。

CHART_BRING_TO_TOP で結果を使用するにはどうすればよいですか?
 
Artyom Trishkin:

OnInit()における時刻の初期化を削除。

ありがとうございます。

エラーの場所を教えていただけませんか。iFreeNumFractals の行はコメントアウトされ、設定は通常のフラクタルと同じにされています。理想的には、通常のフラクタルがある行をコメントアウトして、iFreeNumFractals のコメントを解除すれば、絵は同じになるはずですが...。

#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_plots   2
//--- plot UP
#property indicator_label1  "UP"
#property indicator_type1   DRAW_ARROW
#property indicator_color1  clrLawnGreen
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1
//--- plot DN
#property indicator_label2  "DN"
#property indicator_type2   DRAW_ARROW
#property indicator_color2  clrDeepPink
#property indicator_style2  STYLE_SOLID
#property indicator_width2  1


//--- indicator buffers
double         BufferUP[];
double         BufferDN[];

int dist=3;
string nameInd;
datetime timf=0;
int numf;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,BufferUP);
   SetIndexBuffer(1,BufferDN);
//--- setting a code from the Wingdings charset as the property of PLOT_ARROW
   SetIndexArrow(0,233);
   SetIndexArrow(1,234);
  
   
//---
//---
   
   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[])
  {
  
//---
   if(rates_total<2) return(0);
     {
      int limit=rates_total-prev_calculated;
      if(limit>1) 
        {
         limit=rates_total-2;
         ArrayInitialize(BufferUP,EMPTY_VALUE);
         ArrayInitialize(BufferDN,EMPTY_VALUE);
        }
      for(int i=limit; i>=0; i--) 
        {
         
         if(fub(i))
           {
            BufferUP[i]=low[i]-dist*Point;
           }

         Comment("");
        }
      //--- return value of prev_calculated for next call

     }
   return(rates_total);
  }
//+
bool fub(int ib)//
  {
   bool bingob=false,flag_verh_f=0;
   int start_bar=0,numbarfrup=0,kfr_all=0;
   double high_old=0,prfra=0,f_up=0,f_dn=0,f=0;

     {
      for(int i_i=ib+3; i_i<Bars-2; i_i++)
        {
         if(high_old<High[i_i]) high_old=High[i_i];

        f_up=iFractals(Symbol(),0,MODE_UPPER,i_i);
        //f_up=NormalizeDouble(iCustom(Symbol(),0,"iFreeNumFractals",1,2,2,2,2,0,i_i),Digits);
         f_dn=iFractals(Symbol(),0,MODE_LOWER,i_i);
         //f_dn=NormalizeDouble(iCustom(Symbol(),0,"iFreeNumFractals",1,2,2,2,2,1,i_i),Digits);
         if(f_up>0 && f_up>iMA(NULL,0,33,0,MODE_SMMA,PRICE_CLOSE,i_i)+10*Point)//Если фрактал найден выше МА+10 pips
           {
            numbarfrup=i_i;
           }
         if(f_dn>0 && f_dn<iMA(NULL,0,33,0,MODE_SMMA,PRICE_CLOSE,i_i))
           {
            start_bar=numbarfrup;break;
           }
        }
      for(int i_i=start_bar; i_i<Bars-2; i_i++)
        {
         f=iFractals(Symbol(),0,MODE_UPPER,i_i);
         //f=NormalizeDouble(iCustom(Symbol(),0,"iFreeNumFractals",1,2,2,2,2,0,i_i),Digits);
         if(f>0)kfr_all++;
         if(f>0 && Low[ib]<f+1*_Point && Open[ib]>f //Сравнение фрактала с текущ баром
            &&
            high_old-f>=100*Point//от максимума до фрактала 100 пп
            )
           {
            bingob=true;
            prfra=f;
            timf=Time[i_i];
            break;
           }
         if(kfr_all==3)break;
        }
     }
// numfb=iBarShift(NULL,PERIOD_CURRENT,timf,true);
   if(bingob)
     {flag_verh_f=true;}
   if(bingob==false)
      flag_verh_f=false;

   return(flag_verh_f);

  }
//



 
inter78:
CHART_BRING_TO_TOP の結果をどのように使用するのですか?

以前 CHART_BRING_TO_TOP を使用したときと同じように

 
こんにちは、私は市場で1つの価格で3つの買い注文を持っている価格は10ピップを上昇し、我々は3つの売り注文をロックしたい各注文の+10ピップを、今どのようにこれらの注文はもはやmkl4でチェックされていないようにするために持っている
 
Ghabo:

ありがとうございます。

エラーの発生箇所を教えてください。iFreeNumFractalsの行をコメントアウトし、設定は通常のフラクタルと同じにしています。理論的には、通常のフラクタルで線をコメントアウトして、iFreeNumFractalsをコメントアウトしても絵は同じはずなのですが・・・。




iFreeNumFractalsは、標準やスタンダードフラクタルと同じような設定のインジケーターがチャートに表示されていますか?

その場合、その信号は同じものですか?

 
Aleksandr Egorov:
Hello guys, I have in market three buy orders at one price, price goes up 10 pips, each order has +10 pips I want to lock three sell orders, now how should I make these orders are not checked in mkl4 anymore?

具体的に何をしたいのか、理解してもらいたいのであれば、文章中に句読点を使用することです。そうでなければ、すべて1つの山に - あなたが何を意味するのかを考えてきてください...

 
Taras Slobodyanik:

CHART_BRING_TO_TOP が以前使用されていたのと同じように

使ってから、何もかもがうまくいかなくなった。同じことをインジケータだけにして、CHART_BRING_TO_TOPまで持っていくのは、おそらくそれほど難しいことではないでしょう。
 
Artyom Trishkin:

理解されたいのなら-何をしたいのか、文章には句読点を使いましょう。そうでなければ、あなたはすべてを一つの山にまとめてしまっているのです。

ある価格で市場に3つの買い注文があり、価格は10ピップ上昇し、各注文に+10ピップがあります。私は3つの売り注文をロックしたいのですが、これらの注文がmcl4でチェックされないことを確認する方法はありますか?

 

トレーディング、自動売買システム、ストラテジーテストに関するフォーラム

MQL4初心者のための質問、アルゴリズムやコードに関するヘルプとディスカッション

タラス・スロボダニク さん 2018.10.07 22:12

GlobalVariableCheck() - この変数がすでに存在するかどうかをチェックします。
GlobalVariableTemp()- 次回起動時に自ら削除される一時変数を作成します。

この点は明確ですが、問題は、GPが存在しない場合、GlobalVariableSetを介して 一時的に作成され、永続的ではないことです。

 
Artyom Trishkin:

iFreeNumFractalsは、標準やスタンダードフラクタルと同じような設定のインジケーターがチャートに表示されていますか?

あるとすれば、その信号は一致しているか?

フラクタルは完全に一致します。

スクリーンショット上の標準的なフラクタルに描かれた矢印

iFreeNumFractalsは最初と最後の1つを置き、中間の3つは存在しない。

アクズ