初心者の方からの質問 MQL5 MT5 MetaTrader 5 - ページ 1222

 
Aleksey Mavrin:

必要なもの )

アレクセイ、ありがとうございます

未経験者に親切に教えてください:
MQL5/Soundsフォルダはどんな役割を果たすべき(かもしれない)のでしょうか?(質問は1221ページの一番上にあります)

 

新しいティックが到着したときだけ、チャートのバーの位置が変わるのはなぜか、教えていただけませんか?MT5、Just2Tradeの6月5日のビルド。

#include <Controls\Dialog.mqh>
#include <Controls\Button.mqh>
CAppDialog Main;
CBmpButton nadpr, nadlos, nadot;
CBmpButton podpr, podlos, podot;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
   ChartSetInteger(0,CHART_EVENT_MOUSE_MOVE,true);
   Main.Create(0,"Main",0,50,50,260,130);
   Main.Run();
      
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   Main.Destroy(reason);
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   
  }
//+------------------------------------------------------------------+
void OnChartEvent(const int id,         // идентификатор события   
                  const long& lparam,   // параметр события типа long 
                  const double& dparam, // параметр события типа double 
                  const string& sparam)  // параметр события типа string
{
  Main.OnEvent(id,lparam,dparam,sparam);
}
 
Nikita Chernyshov:

新しいティックが到着したときだけ、チャートのバーの位置が変わるのはなぜか、教えていただけませんか?MT5、Just2Tradeの6月5日のビルド。

標準の[data folder]にあるパネルの例と自分のコードを比較します。

 

こんにちは、目利きの方に質問です。

私はこのような構造を構築しようとしています - 関数、4つの変数は、パラメータとしてリンクによって供給され、配列は、これらの4つの変数の計算のためのデータが関数内で取得されます。プログラム中には、ジグザグの上端と下端の2つの配列があります。 この関数は、トレンドラインを描くためのポイントを計算する必要があります。

問題は、2つの配列のうちどちらが特定の反復処理で使用されているかを確認し、計算に+または-を適用するにはどうすればよいかということです。

もし、ぎこちない表現であれば、もう一度聞いてください、喜んで説明します。ここに添付したのは、施工の概要です。

//+------------------------------------------------------------------+ 
//| Вычисляем значения точек привязки трендовых линий                | 
//+------------------------------------------------------------------+ 
void CalculateTrendPoints(datetime &time_1, double &price_1, 
                          datetime &time_2, double &price_2, double &zigbuf[])  
{
   int ind_time_1, ind_time_2;
   int size_zigbuf = ArraySize(zigbuf);
   for(int i = 0; i < size_zigbuf; i++){if(zigbuf[i] != EMPTY_VALUE)break;}
      price_1    = zigbuf[i];
      ind_time_1 = i;
   for(int i = ind_time_1 + 1; i < size_zigbuf; i++){if(zigbuf[i] != EMPTY_VALUE)break;}
      price_2    = zigbuf[i];
      ind_time_2 = i;

   //Дальше будут расчеты, в которых в зависимости от того для чего используется функция
   //(построение ТрЛайн для верхних пиков или для нижних)будет применяться 
+ или - , < или >. 
   //Думаю что легче всего понять данное конкретное применение по тому, какой массив зашел в параметрах (&zigbuf[]), 
   //Вопрос не сложный - как это написать???   
} 

つまり、zigbuf[] パラメータは、ZigzagPeakBuffer[]かZigzagBottomBuffer[] のどちらかのみで代用 されることになります。どのオプションが現在設定されているかを関数内で確認するにはどうすればよいですか?


 

今までは、見つかった値を比較して、どれが一致すれば、その配列は我々のものである、というように、どの配列が関与しているかを判断するように考案してきました。でも、きっともっと素敵で短い解決策があるはずです。

知っている - 教えてください !

//+------------------------------------------------------------------+ 
//| Вычисляем значения точек привязки трендовых линий                | 
//+------------------------------------------------------------------+ 
void CalculateTrendPoints(datetime &time_1, double &price_1, 
                          datetime &time_2, double &price_2, double &zigbuf[])  
{
   int ind_time_1 = 0;
   int ind_time_2 = 0;
   int size_zigbuf = ArraySize(zigbuf);
   for(int i = 0; i < size_zigbuf; i++)
      {
         if(zigbuf[i] != EMPTY_VALUE)
            price_1    = zigbuf[i];
            ind_time_1 = i;
            break;
      }
   for(int i = ind_time_1 + 1; i < size_zigbuf; i++)
      {
         if(zigbuf[i] != EMPTY_VALUE)
            {
               if(zigbuf[i] == ZigzagPeakBuffer[i] && zigbuf[i] > price_1)
                  {
                     price_2    = zigbuf[i];
                     ind_time_2 = i;
                     break;
                  }
               if(zigbuf[i] == ZigzagBottomBuffer[i] && zigbuf[i] < price_1)
                  {
                     price_2    = zigbuf[i];
                     ind_time_2 = i;
                     break;
                  }
            }
      }
   //Дальше будут расчеты, в которых в зависимости от того для чего используется функция
   //(построение ТрЛайн для верхних пиков или для нижних)будет применяться + или - , < или >.
   //Думаю что легче всего понять данное конкретное применение по тому, какой массив зашел в параметрах (&zigbuf[]), 
   // Вопрос не сложный - как это написать???   
}
 

皆さん、こんにちは))


Question:OBJ_FIBOで プロットすると、グラフ(OBJPROP_TOOLTIP)上にポップアップウィンドウが表示されない。OBJPOP_TXT/ FIBO でツールチップを使ってポップアップウィンドウを作るにはどうしたらいいのでしょうか?

目的:Fiboレベル上にマウスを置いたとき、HLINEのようなウィンドウをポップアップする(例)。

Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов
Документация по MQL5: Константы, перечисления и структуры / Константы объектов / Типы объектов
  • www.mql5.com
При создании графического объекта функцией ObjectCreate() необходимо указать тип создаваемого объекта, который может принимать одно из значений перечисления ENUM_OBJECT. Дальнейшие уточнения свойств созданного объекта возможно с помощью функций по работе с графическими объектами.
 
kopeyka2:

皆さん、こんにちは))


Question:OBJ_FIBOで プロットすると、グラフ(OBJPROP_TOOLTIP)上にポップアップウィンドウが表示されない。OBJPOP_TXT/ FIBO でツールチップを使ってポップアップウィンドウを作るにはどうしたらいいのでしょうか?

目的:Fiboレベル上にマウスを置くと、HLINEのようなウィンドウをポップアップします(一例)。

OBJPROP_TEXTプロパティを使用する

ObjectSetString(chart_ID,name,OBJPROP_TEXT,"Это всплывающая подсказка");
 
使用しないデモ製品を削除するにはどうすればよいですか? システムから「新しいバージョン......」というメッセージが何度も表示されるのですが。
 
Sergey Voytsekhovsky:

今までは、見つかった値を比較して、どれが一致すれば、その配列は我々のものである、というように、どの配列が関与しているかを判断するように考案してきました。でも、きっともっと素敵で短い解決策があるはずです。

知っている人~教えてください!!!

なぜ、自分で問題を作るのですか?このままでも十分でしょう。

2つの機能を別々に作ればいいんです。

 
MqlParamの 配列をセットファイルから取得する方法を教えてください。
理由: