[警告は閉鎖されました!】フォーラムを乱雑にしないために、どんな初心者の質問でも。プロフェッショナルは、通り過ぎないでください。あなたなしでは、どこにも行けない。 - ページ 831

 

有識者の皆様、こんにちは。

この質問について、アドバイスをお願いします。

MQL4には、i番目のバーからj番目のバーまでの区間で価格が取った最大値/最小値を決定できる標準的な関数はありますか?

ありがとうございました。

 
Morzh09:

有識者の皆様、こんにちは。

この質問について、アドバイスをお願いします。

MQL4には、i番目のバーからj番目のバーまでの区間で価格が取った最大値/最小値を決定できる標準的な関数はありますか?

ありがとうございました。

https://docs.mql4.com/ru/series/iHighest

https://docs.mql4.com/ru/series/iLowest

 
こんなのはどうでしょう
void CheckForOpen() { 

//

s=0;
     t_up=icustom(.........................);
     if(t_up==1)
        {
          s=1;
          for(k=0;k<10;k++)             //количество раз проверки
            {
               sleep(30000);             //
             //думаю что в этом месте рефреш ????????
               if(t_up==1)
                    s=1;
                else
                    {
                       s=0;
                       break;
                    }
             }
           if(s==1)op="buy";
        }
      else
        {
          s=0;
          break;
        }
return;
}
どこかでリフレッシュしないとね。そして質問ですが、Slapを使用するとどのような結果になるのでしょうか?
 
gince:
そして、こうやってやっていると、どこかでリフレッシュしないといけない。そして質問ですが、スラップを使うとどんな結果になるのでしょうか?

テスターでスリープが 効かない。

チック毎のチェックが効かないのはなぜですか?インジケーターが「重い」のでは?

 

専門家の皆さん、こんにちは。私はMOL4でプログラミングを学んでいます。条件「買い注文が売り注文より多い場合」の正しい書き方がわかりません。

 
fanat:

専門家の皆さん、こんにちは。私はMOL4でプログラミングを学んでいます。条件「買い注文が売り注文より多い場合」の正しい書き方がわかりません。

オープン?クローズド?マーケット?延期?
違いがあるんです。
 
fanat:

専門家の皆さん、こんにちは。私はMOL4でプログラミングを学んでいます。買い注文が売り注文より多い場合」という条件の正しい書き方がわかりません。 よろしくお願いします。


1.最初のタイプの注文数を数える

2.2種類目の注文 数をカウントする

3.比較結果

extern int Magic=20100906;
//+------------------------------------------------------------------+
//|     Массив для хранения количества открытых позиций каждого типа |
//|                                Copyright © 2010, Victor Nicolaev |
//|                                            e-mail: vinin@mail.ru |
//+------------------------------------------------------------------+
//| int Order_Count[6];                                              |
//+------------------------------------------------------------------+
int Order_Count[6];

//+------------------------------------------------------------------+
//|       Функция возвращаюшая количество ордеров определенного типа |
//|                                   исхода из заданных ограничений |
//|                                Copyright © 2010, Victor Nicolaev |
//|                                            e-mail: vinin@mail.ru |
//+------------------------------------------------------------------+
//| int Order_Count_Calculate(string lSymbol, int lMagic, int lOP=-1)|
//+------------------------------------------------------------------+
int Order_Count_Calculate(string lSymbol, int lMagic, int lOP=-1){
   ArrayInitialize(Order_Count,0);
   for (int i = OrdersTotal() - 1;  i >= 0;  i--) {
      if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue;
      if (OrderSymbol() != lSymbol)                   continue;
      if (OrderMagicNumber() != lMagic)                continue;
      Order_Count[OrderType()]++;
   }
   if (lOP!=-1) return(Order_Count[lOP]);
   return(0);
}

int start(){
   Order_Count_Calculate(Symbol(), Magic);
   if (Order_Count[OP_BUY]>Order_Count[OP_SELL])
   // Ваши действия
   return(0);
}

 

こんにちは!!!

矢印のついたシンプルなインジケーターです。昨日はどちらも...。まさか今日、頭を冷やして考えてみたが、やはりエラーは出ない......。

何も描いていない!!!!!!!どこが間違いか教えてください...。

//+------------------------------------------------------------------+
//|                                         Indicator_OsMA_Stoch.mq4 |
//|                                                                  |
//|           огромное cпасибо за помощь Vinin и granit77            |
//+------------------------------------------------------------------+
#property copyright ""
#property link      ""

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Red
#property indicator_color2 Blue
//---- input parameters
extern int       Fast_EMA=8;      // пар-ры OsMA
extern int       Slow_EMA=34;     // пар-ры OsMA
extern int       Signal_EMA=1;    // пар-ры OsMA
extern double    N = 0.0002;      // контр. линия
extern int     KPeriod     = 21;  // Период (количество баров) для вычисления линии %K.
extern int     DPeriod     = 5;   // Период усреднения для вычисления линии %D.
extern int     Slowing     = 8;   // Значение замедления.
extern int       A = 20;          // расстояние от бара
//---- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];
double OsMA[];
double Stoch[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   IndicatorBuffers(4);
   SetIndexStyle(0,DRAW_ARROW, EMPTY, 1);
   SetIndexArrow(0,234);
   SetIndexBuffer(0,ExtMapBuffer1);
   SetIndexEmptyValue(0,0.0);
   SetIndexStyle(1,DRAW_ARROW, EMPTY, 1);
   SetIndexArrow(1,233);
   SetIndexBuffer(1,ExtMapBuffer2);
   SetIndexEmptyValue(1,0.0);
   SetIndexBuffer(2,OsMA);
   SetIndexBuffer(3,Stoch);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
   int    counted_bars=IndicatorCounted();
   int limit = Bars-counted_bars-1;
   
   for(int i = limit; i>= 0; i--) {
      ExtMapBuffer2[i] = EMPTY;
      ExtMapBuffer1[i] = EMPTY;
      OsMA[i]=iOsMA(NULL,0,Fast_EMA,Slow_EMA,Signal_EMA,PRICE_OPEN,i);
      Stoch[i]=iStochastic(NULL,0,KPeriod,DPeriod,Slowing,1,0,MODE_MAIN,i);
      if(true                &&
        (OsMA[i]>OsMA[i+1])  ||
        (OsMA[i]<OsMA[i+1])  &&
        (Stoch[i+1]>Stoch[i])||
        (Stoch[i+1]<Stoch[i])
        )
      {
       if((OsMA[i]<-N)&&(Stoch[i]<20)) ExtMapBuffer2[i] = Low[i] -A*Point;
       if((OsMA[i]> N)&&(Stoch[i]>80)) ExtMapBuffer1[i] = High[i]+A*Point; 
      }
   }
   return(0);
}
//+------------------------------------------------------------------+ 
 
よろしくお願いします。保留中の注文が いくつかある(例えば10個)。そのうちの1つが開き、トリガーされます(テイクオーダーかロスオーダーかは関係ありません)。次のティックでは、次の保留注文が設定されているはずです。ティックやマジックを使って注文を特定することは困難です(トリガーとなるポジションの数は限定されません)。そのため、保留注文を設定するタイミングを選ぶには、すでに決済されたポジションの最終と最終の変数値(何でもいい)を比較するのが一番簡単だと考えた。ありがとうございます。
 
dimon74:
よろしくお願いします。保留中の注文がいくつかある(例えば10個)。そのうちの1つが開き、トリガーされます(テイクオーダーかロスオーダーかは関係ありません)。次のティックでは、次の保留注文が設定されているはずです。ティックやマジックを使って注文を特定することは困難です(トリガーとなるポジションの数は限定されません)。そのため、保留注文を設定するタイミングを選ぶには、すでに決済されたポジションの最終と最終の変数値(何でもいい)を比較するのが一番簡単だと考えた。ありがとう ございました。

次回は何が変わるのでしょうか?
理由: