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

 

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

バグ、バグ、質問

コンプ さん 2016.03.23 09:49

ChartIDでチャート周期を知るには?ChartGetIntegerでは1アクションでこれを 行うことはできません。

今まではテンプレートを保存して、その中でピリオドを解析することで松葉杖の解決策を考えていました。

普通に調べるには?

ChartPeriodを 使用する

チャートピリオド

指定されたチャートのピリオド 値を返します。

ENUM_TIMEFRAMESChartPeriod()
longchart_id=0// チャート ID
);

パラメータ

chart_id=0

[チャートのID0は現在のチャートを意味します。

戻り値

ENUM_TIMEFRAMES型の。チャートがない場合は、0を返す

 
Karputov Vladimir:

ChartPeriodを 使用する

ありがとうございます。
 

こんにちは。

ワンクリック取引パネルの状態(拡大・縮小)を判断する方法を教えてください。

 
この初心者スレで正しい話題の質問を検索する方法を教えてください。このスレッドは質問と回答の巨大な層に成長したため、手動で検索することは不可能になりました。もし、あなたが質問をするのをためらっているなら、それはすでにずっと前にここで回答されているかもしれませんが、検索はこの特定のセクション「初心者向け」ではなく、サイト全体で行われるのでしょうか?
 
Alexander:
この初心者スレで正しい話題の質問を検索する方法を教えてください。このスレッドは質問と回答の巨大な層に成長したため、手動での検索は不可能になりました。質問をすることはすでに躊躇して、多分それはすでに長い時間前にここで答えられ、検索はサイト全体ではなく、この特定のセクションで行われます "初心者のために"?

google検索で「検索サイト:https://www.mql5.com/ru/forum/6343」と入力してください。

"Searchable "は、あなたが探しているものです。

 
µl4言語に関する質問 - 最適化中に「オブジェクトの作成」機能が働かないのはなぜですか?オブジェクトを使用して複数の変数のデータを格納する場合、openfail->failride->failclose関数を使用する場合よりも20倍高速になり、最適化とテストの速度が非常に遅くなることが判明しています。
 

こんにちは。

サーバー時間の午後3時から午後5時までの2時間、過去250回の取引 セッションのバーを処理する方法がわかりません。

コンセプトのご提案をお願いします。

mql5

 
Stairway_2_7:

こんにちは。

サーバー時間の午後3時から午後5時までの2時間、過去250回の取引 セッションのバーを処理する方法がわかりません。

コンセプトのご提案をお願いします。

mql5

タイムクエリで機能を使う

int  CopyOpen( 
   string           symbol_name,     // имя символа 
   ENUM_TIMEFRAMES  timeframe,       // период 
   datetime         start_time,      // с какой даты 
   datetime         stop_time,       // по какую дату 
   double           open_array[]     // массив для копирования цен открытия 
   );
 

セルゲイ

返信ありがとうございました

私のタスクでは、以下の方が便利です。

void OnStart()

{

datetime start =StringToTime("2016.03.25 15:00")。

datetime stop =StringToTime("2016.03.25 15:55")。

MqlRates rates[];

ArraySetAsSeries(rates,true)です。

int copied=CopyRates(_Symbol,PERIOD_M5,start,stop,rates);

if(copied>0)

{

Print("コピーされたバー:"+copied);

string format="open = %G, high = %G, low = %G, close = %G, volume = %d""オープン = %G, ハイ = %G, ロー = %G, クローズ = %G, ボリューム = %d";

の文字列を表示します。

int size=fmin(copied,10);

for(int i=0;i<size;i++)

{

out=i+": "+TimeToString(rates[i].time);

out=out+"+StringFormat(format,

rates[i].open,

rates[i].high,

rates[i].low,

rates[i].close。

rates[i].tick_volume);

Print(out)します。

}

}

else Print("Failed to get historical data on symbol ",Symbol());

}

土日を削除するにはどうすればよいですか?

より正確には、直近の例えば250取引日について同様の操作をしてみてください。

 
Stairway_2_7:

セルゲイ

返信ありがとうございました

私のタスクでは、以下の方が便利です。

void OnStart()

{

datetime start =StringToTime("2016.03.25 15:00")。

datetime stop =StringToTime("2016.03.25 15:55")。

MqlRates rates[];

ArraySetAsSeries(rates,true)です。

int copied=CopyRates(_Symbol,PERIOD_M5,start,stop,rates);

if(copied>0)

{

Print("コピーされたバー:"+copied);

string format="open = %G, high = %G, low = %G, close = %G, volume = %d""オープン = %G, ハイ = %G, ロー = %G, クローズ = %G, ボリューム = %d";

の文字列を表示します。

int size=fmin(copied,10);

for(int i=0;i<size;i++)

{

out=i+": "+TimeToString(rates[i].time);

out=out+"+StringFormat(format,

rates[i].open,

rates[i].high,

rates[i].low,

rates[i].close。

rates[i].tick_volume);

Print(out)します。

}

}

else Print("Failed to get historical data on symbol ",Symbol());

}

土日を削除するにはどうすればよいですか?

正確には、過去250取引日分について同様の操作を行うにはどうしたらよいでしょうか。

この構造で仕事をしてみてください

struct MqlDateTime 
  { 
   int year;           // год 
   int mon;            // месяц 
   int day;            // день 
   int hour;           // час 
   int min;            // минуты 
   int sec;            // секунды 
   int day_of_week;    // день недели (0-воскресенье, 1-понедельник, ... ,6-суббота) 
   int day_of_year;    // порядковый номер в году (1 января имеет номер 0) 
  };
理由: