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

 
Oleg Remizov:

また、私の観察によると、Expert Advisorが画面にさまざまな情報を表示するのが好きだ。矢印や線、チャネルなどを描き、「人工知能」の活発な活動を示すのだ)。

インジケータによると、Expert Advisorはトレーリングを提供します。このプロセスをビジュアル化し、StopLossと一緒に点線が表示されるようにしたいのです。

トレンド ラインを使用し、最初のアンカー ポイントは現在のバー、2番目のアンカーポイントは履歴の1バー、太さは2-3本とする。

 
Vitaly Muzichenko:

トレンド ラインを使用し、最初のアンカーポイントは 現在のバー、2番目は履歴の1バー、太さは2-3本にする

素晴らしいアイデアですね。ありがとうございます、ちょうど良さそうです。

方向づけ

 
ANDREY:

配列の宣言と同時に初期化することについて、Kovalev氏の教科書には次のように書かれています。

8.4.4 配列の初期化

一次元および多次元配列は、カンマで区切られた一次元の定数列で初期化されます。配列は中括弧で囲む。

int Mas_i[3][4] = { 0, 1, 2, 3, 10, 11, 12, 13, 20, 21, 22, 23 }.

double Mas_d[2][3] = { 0.1, 0.2, -0.3, -10.2, 1.5, 7.0 };

bool Mas_b[5] = { false, true, false, true, true }.

初期化 シーケンスにおいて、1つまたは複数の定数をスキップすることができる。

教科書を見ると、配列が宣言されると、配列の最初の要素だけでなく、すべてのデータで配列全体が初期化されるようです。
もし、私が教科書を誤解していたら、どこを誤解しているのか指摘していただけるとありがたいです。

あなたの教科書について議論する気は毛頭ない、読んでもいない

と、この掲示板で教科書が古くて関係ないことを書いています。

のように、2次元の配列を初期化することができます。

int arr[2][5] = {{1, 2, 3, 4, 5,}, {6, 7, 8, 9, 10}};
 
Igor Makanu:

あなたの教科書について議論する気は毛頭ありません。

と、このフォーラムでチュートリアルが古く、無関係であることを書いています。

2次元の配列は、そのように初期化することができます。

どうもありがとうございました。私の考えをそのまま言い当てていますね。2次元配列の初期化方法について頭を悩ませているところです...... ただ、関数ArrayInitialize();
この関数のマニュアルには、1次元配列の初期化についてのみ記載があるように感じました。
教えていただけるとありがたいです。

 
ANDREY:

どうもありがとうございました。私の考えをそのまま言い当てていますね。2次元配列の初期化方法について悩んでいるのですが、ArrayInitialize ();
この関数のリファレンスでは、1次元配列のみの初期化についての情報が与えられているようです。
教えていただけるとありがたいです。

ArrayFill() は、配列の全要素を 目的の値で埋めることができ、2次元配列に使用することができます。この関数のヘルプにある例を見てください。

ちなみに、ArrayInitialize()を2次元配列に適用して 確認したところ、 こちらも正常に動作しました。しかし、どちらの場合も、すべての要素だけを特定の値で初期化することができます。

各要素に異なる値を設定する必要がある場合、これらの関数は機能しません。

Документация по MQL5: Основы языка / Переменные
Документация по MQL5: Основы языка / Переменные
  • www.mql5.com
Переменные должны быть объявлены перед их использованием. Для идентификации переменных используются уникальные имена. Описания переменных используются для их определения и объявления типов. Описание не является оператором. Индексом массива может быть только целое число. Допускаются не более чем четырехмерные массивы. Нумерация элементов массива...
 
Oleg Remizov:

ArrayFill() は、配列の全要素を 目的の値で埋めることができ、2 次元配列に使用することができます。この関数のヘルプにある例を参照してください。

ちなみに、ArrayInitialize()を2次元配列に適用して 確認したところ、 こちらも正常に動作しました。しかし、どちらの場合も、すべての要素だけを特定の値で初期化することができます。

各項目に異なる値を設定する必要がある場合、これらの機能は動作しません。

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

 
Oleg Remizov:

残念ながら、このテンプレートは私には使えません。インジケータ表示機能は設定でON/OFFしておき、EAから直接描画すること。Expert Advisorは1つのファイルで転送できるようにする必要があります。

矢印の代わりに、両方のポイントで同じ価格と時間を持つトレンド ラインを描きます。線の太さで、出来上がる点の大きさを調節します。

 
こんにちは、私は新参者ですが、自分の口座からお金を引き出す方法と、その後いつ送金するかを知りたいのです
 

ごあいさつ

MT4でこういうのあるんだ。

#import "user32.dll"
   int SendMessageA(int hWnd, int Msg, int wParam, char &lParam[]);
   int RegisterWindowMessageA(uchar &lParam[]);
#import

string IndiName="TestBot";

void OnStart()
  {
   char buf[];
   StringToCharArray("MetaTrader4_Internal_Message", buf);
   int MT4InternalMsg=RegisterWindowMessageA(buf);
   StringToCharArray(IndiName, buf);
   long handle=ChartGetInteger(0, CHART_WINDOW_HANDLE);
   Print(MT4InternalMsg);
   bool res=SendMessageA((int)handle, MT4InternalMsg, 14, buf);
   Print("Функция SendMessageA завершила работу с результатом: ",res);
  }

このコードは、特定のEAを実行するためのコマンドをターミナルウィンドウに送信します。

MT5で同様の機能はありますか?

こんな感じでやってみました。

#import "user32.dll"
   int SendMessageA(long hWnd, long Msg, uint wParam, uchar &lParam[]);
   int RegisterWindowMessageA(uchar &lParam[]);
#import

string IndiName="TestBot";

void OnStart()
  {
   uchar buf[];
   StringToCharArray("MetaTrader5_Internal_Message", buf);
   long MT5InternalMsg=RegisterWindowMessageA(buf);
   StringToCharArray(IndiName, buf);
   long handle=ChartGetInteger(0, CHART_WINDOW_HANDLE);
   Print("Window handle: ", handle);
   Print("Message: ",MT5InternalMsg);
   for(int i = 0; i<100; i++){
      bool res=SendMessageA(handle, MT5InternalMsg, i , buf);
      printf("Функция SendMessageA завершила работу с результатом: %d, номер: %d ",res, i);
   }
  }

動作しない。

spy++をスキャンしてみましたが、MT5ではMT4と違ってメッセージが出ません。

Expert Advisorの設定画面を正確に呼び出す必要があります。

 
50211108:
こんにちは、私は初心者で、口座からお金を引き出す方法を明確にしたいと思い、その後、いつ入金すること

ソフトウェア、シグナル、コンピュータパワーの販売であるこのリソースから稼いだものだけを引き出すことができます。入力されたものは、このリソースにしか使えません。