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

 

Karputov Vladimir:
Высылайте.

送信

 
Karputov Vladimir:
送ってください。
また、入力パラメータを 変更した場合にも、エラーなく正しく動作することを付け加えておきます。
 

カルプトフ・ウラジーミルの 協力のもと。OnInit()関数でインジケータハンドルを取得し、OnDeinit()でそれを削除することで解決しました。

ヒストリー全体ではなく、特定のバーから線を引くようにしていただけないでしょうか。

 

こんにちは。そんな悩みを抱えています。MQLの勉強を始め、EAを書いているところです。Expert Advisor をコンパイルして実行すると、1時間足の EUR チャートが開きますが、どのチャートを開くかは指定してません。ユーロドルの開放を5分と規定しました。最初は1時間、次に5分とユーロドルを開けていきます。時間チャートを削除するにはどうすればよいですか?Expert Advisorのコードはこちらです。事前にアドバイスをいただき、ありがとうございました。


//+------------------------------------------------------------------+
//|а.mq4|(エムキューブ
//|ヴァレリー・ウィルクス
//|httpsを使用しています。//wwwmql5.com|コメント||電子書籍ストア「BookLive!
//+------------------------------------------------------------------+
#property copyright"ヴァレリー・ウィルクス"
#プロパティリンク "https://www.mql5.com"
#property version "1.00"
#プロパティの厳密さ
double iAlligator()。
bool ObjectSetInteger() を使用します。
long a=ChartOpen("EURUSD",PERIOD_M5)。
//+------------------------------------------------------------------+
//| エキスパート初期化機能|
//+------------------------------------------------------------------+
int OnInit()
{
//--- タイマーを作成する
EventSetTimer(5)です。

//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| 専門家による初期化機能|
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
//--- タイマーを破壊する
EventKillTimer()。

}
//+------------------------------------------------------------------+
//| エキスパートティック機能|
//+------------------------------------------------------------------+
void OnTick()
{


for(int f=3;; f++)
{
double val=iFractals("EURUSD",15,1,f);
if(val!=0)
{
Alert("Buy Fractal",val, "Bar Left",f);
が壊れる。
}
}
for(int f1=3;; f1++)
{
double val1=iFractals("EURUSD",15,2,f1)。
if(val1!=0)
{
Alert("Fractal to sell ",val1, "Bar left",f1);
が壊れる。
}
アラート(Bid)。
}


}
//+------------------------------------------------------------------+
//| タイマー機能|
//+------------------------------------------------------------------+

void OnTimer()
{


}
//+------------------------------------------------------------------+
//|テスター機能|
//+------------------------------------------------------------------+
double OnTester()
{
//---
double ret=0.0;
//---

//---
return(ret)です。
}
//+------------------------------------------------------------------+

Автоматический трейдинг и тестирование торговых стратегий
Автоматический трейдинг и тестирование торговых стратегий
  • www.mql5.com
MQL5: язык торговых стратегий для MetaTrader 5, позволяет писать собственные торговые роботы, технические индикаторы, скрипты и библиотеки функций
 
valeravilks:

こんにちは。そんな悩みを抱えています。MQLの勉強を始め、Expert Advisorを執筆しているところです。Expert Advisor をコンパイルして実行すると、EURUSD の時間足チャートが開きますが、どのチャートを開くかはまだ指定されていません。ユーロドルの開放を5分と規定しました。最初は1時間、次に5分とユーロドルを開けていきます。時間チャートを削除するにはどうすればよいですか?Expert Advisorのコードはこちらです。事前に情報をありがとうございました。



デバッグを有効にしているはずなのに、EAがデフォルトのシンボルで起動する。メタエディタの設定で、必要なシンボルとTFを指定します。(添付写真参照)。

ファイル:
kagfqct9ki.png  28 kb
 
こんにちは。
int maxValueIdx= ArraySort(INDEX,WHOLE_ARRAY,ArrayMaximum(INDEX,WHOLE_ARRAY,0),MODE_ASCEND);
int minValueIdx=ArraySort(INDEX,WHOLE_ARRAY,ArrayMinimum(INDEX,WHOLE_ARRAY,0),MODE_DESCEND);  
どういう意味だと思いますか?
 
azfaraon:
こんにちは。
どういう意味だと思いますか?
これはMQL4のコードです。まず、配列の最大値を探し、配列全体を0要素から順にチェックします。そして,見つかった最大インデックスから順に配列がソート されます(最初の例では昇順,2番目では降順).
 

つまり、この作品では、最大値から最小値までの最大値と最小値を探しているのですね?

そして、この中で

  int maxValueIdx=ArrayMaximum(INDEX,WHOLE_ARRAY,0);
      int minValueIdx=ArrayMinimum(INDEX,WHOLE_ARRAY,0);

は、最小から最大まで?

 
azfaraon:


このコード

int maxValueIdx=ArrayMaximum(INDEX,WHOLE_ARRAY,0);

は,最大値を持つ要素のインデックスを検索する。検索は要素0から始まり、配列全体を通して行われます。

 
azfaraon:

以下はそのコードです。

//+------------------------------------------------------------------+
//|                                                  test_script.mq4 |
//|                        Copyright 2015, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property strict
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- Инициализация массива
   int INDEX[]={2,45,21,8,96,14,32,6,81,46,1,3,31,22,5,78,24,25,66};

//--- Выведем на печать наш массив
   int size;
   string text;

   size=ArraySize(INDEX);        // размер нашего массива
   text=NULL;
   for(int i=0;i<size;i++)
     {
      if(i<size-1)
         text=text+IntegerToString(INDEX[i])+",";
      else
         text=text+IntegerToString(INDEX[i]);
     }
   Print("Старт");
   Print(text);
//---
   Print("---");
   Print("Элемент с индексом ",ArrayMaximum(INDEX,WHOLE_ARRAY,0),
         " имеет максимальное значение равное ",INDEX[ArrayMaximum(INDEX,WHOLE_ARRAY,0)]);
   int maxValueIdx=ArraySort(INDEX,WHOLE_ARRAY,ArrayMaximum(INDEX,WHOLE_ARRAY,0),MODE_ASCEND);

//--- Выведем на печать наш массив
   size=ArraySize(INDEX);       // размер нашего массива   
   text=NULL;
   for(int i=0;i<size;i++)
     {
      if(i<size-1)
         text=text+IntegerToString(INDEX[i])+",";
      else
         text=text+IntegerToString(INDEX[i]);
     }
   Print(text);

//---
   Print("---");
   Print("Элемент с индексом ",ArrayMinimum(INDEX,WHOLE_ARRAY,0),
         " имеет минимальное значение равное ",INDEX[ArrayMinimum(INDEX,WHOLE_ARRAY,0)]);
   int minValueIdx=ArraySort(INDEX,WHOLE_ARRAY,ArrayMinimum(INDEX,WHOLE_ARRAY,0),MODE_DESCEND);

//--- Выведем на печать наш массив
   size=ArraySize(INDEX);       // размер нашего массива   
   text=NULL;
   for(int i=0;i<size;i++)
     {
      if(i<size-1)
         text=text+IntegerToString(INDEX[i])+",";
      else
         text=text+IntegerToString(INDEX[i]);
     }
   Print(text);
   Print("Конец");
  }
//+------------------------------------------------------------------+

で、その結果がこれです。

2015.05.03 19:20:03.917 test_script #CHL,Daily:  Старт
2015.05.03 19:20:03.917 test_script #CHL,Daily: 2,45,21,8,96,14,32,6,81,46,1,3,31,22,5,78,24,25,66
2015.05.03 19:20:03.917 test_script #CHL,Daily: ---
2015.05.03 19:20:03.917 test_script #CHL,Daily:  Элемент с индексом 4 имеет максимальное значение равное 96
2015.05.03 19:20:03.917 test_script #CHL,Daily: 2,45,21,8,1,3,5,6,14,22,24,25,31,32,46,66,78,81,96
2015.05.03 19:20:03.917 test_script #CHL,Daily: ---
2015.05.03 19:20:03.917 test_script #CHL,Daily:  Элемент с индексом 4 имеет минимальное значение равное 1
2015.05.03 19:20:03.917 test_script #CHL,Daily: 2,45,21,8,96,81,78,66,46,32,31,25,24,22,14,6,5,3,1
2015.05.03 19:20:03.917 test_script #CHL,Daily:  Конец

探検してください。

理由: