MQL4、MQL5に関する初心者からの質問、アルゴリズムやコードに関するヘルプ、ディスカッションなど。 - ページ 138 1...131132133134135136137138139140141142143144145...1953 新しいコメント Alexey Viktorov 2017.03.04 07:51 #1371 missha689: 昨日の日付と時刻の調べ方を教えてください。まあ、必要なことは全部書いてあるから、読めばいいんだけどね。このように。iTime("USDCHF",PERIOD_H1,0) 指定したシンボルを_Symbolに、PERIOD_H1をPERIOD_D1に置き換えるだけで、ここに一日の開始時刻が 表示されます。0を1に置き換えると、昨日の開店時刻が表示されます。 Maxim Kuznetsov 2017.03.04 08:45 #1372 missha689: 昨日の日付と時刻をプログラム的に調べる方法を教えてください。のカレンダーを昨日作成しました。 datetime tim=TimeCurrent()-24*60*60;MqlDateTime ts;TimeToStruct(tim,ts);ts.hour=0;ts.min=0;ts.sec=0;tim=StructToTime(ts);現在時刻 - 昨日の暦日開始時刻(!!プレバーD1の開店時刻では ありません)。プレバーD1の開店時間 - iTime(0,PERIOD_D1,1); 小さな修正あり - 土曜日なら24時間、日曜日なら48時間追加します。 missha689 2017.03.04 09:28 #1373 Alexey Viktorov:必要なことはすべて書いてあるから、読むだけでいい。このように。iTime("USDCHF",PERIOD_H1,0) 指定したシンボルを_Symbolに、PERIOD_H1からPERIOD_D1に置き換えるだけで、ここにその日の開始時刻が 表示されます。0を1に置き換えると、昨日の開店時刻が表示されます。昨日からやり方を考えているのですが、できないので、初めてなので、教えてください。昨日の15:00のバーのインデックスと今日の7:00のバーのインデックスを、例にあるように日付を明示的に指定せずに見つけるのを手伝ってください。 missha689 2017.03.04 09:57 #1374 Maxim Kuznetsov:のカレンダーを昨日作成しました。 datetime tim=TimeCurrent()-24*60*60;MqlDateTime ts;TimeToStruct(tim,ts);ts.hour=0;ts.min=0;ts.sec=0;tim=StructToTime(ts);現在時刻 - 昨日のカレンダー上の一日の始まり(!!D1プレバーの開店時刻では ありません。)プレバーD1の開始時間 - iTime(0,PERIOD_D1,1); 小さな修正 - 土曜なら24時間、日曜なら48時間を追加します。 ありがとうございました。 FOTOGRAF14 2017.03.04 14:33 #1375 Sergey Gritsay: 関数に,ストップバンドをロスレスに移行するためのオーダーチケットと 距離(pips)を送信します。void zero_profit(int ticket, int distance) { double sl=0.0; if(OrderSelect(ticket,SELECT_BY_TICKET)) { if(OrderType()==OP_BUY) { if(Bid>=OrderOpenPrice() && Bid-OrderOpenPrice()>=distance*_Point) sl=OrderOpenPrice(); if(OrderStopLoss()!=0 && OrderStopLoss()>=OrderOpenPrice())return; } if(OrderType()==OP_SELL) { if(Ask<=OrderOpenPrice() && OrderOpenPrice()-Ask>=distance*_Point) sl=OrderOpenPrice(); if(OrderStopLoss()!=0 && OrderStopLoss()<=OrderOpenPrice())return; } ResetLastError(); if(sl<=0)return; if(!OrderModify(OrderTicket(),OrderOpenPrice(),sl,OrderTakeProfit(),0)) { int error=GetLastError(); rezult=StringConcatenate(OrderSymbol(),": error modifying StopLoss order ",OrderTicket()," ",TypeToStr(OrderType())," №- ",error); Print(rezult); } } }...セルゲイさん、ありがとうございます!!!! Artyom Trishkin 2017.03.04 19:09 #1376 Vitaly Muzichenko:クール、EAに機能を引っ張ってくるようにします。結果は後ほど掲載します。ありがとうございます!!!2つ目の検索方法を追加しました。//+------------------------------------------------------------------+//| iFreeNumFractals.mq4 |//| Copyright 2017, Artem A. Trishkin, Skype artmedia70 |//| https://login.mql5.com/ru/users/artmedia70 |//+------------------------------------------------------------------+#property copyright "Copyright 2017, Artem A. Trishkin, Skype artmedia70"#property link "https://login.mql5.com/ru/users/artmedia70"#property version "3.00"#property strict#property indicator_chart_window#property indicator_buffers 2#property indicator_plots 2//--- plot UpperFractal#property indicator_label1 "Upper Fractal"#property indicator_type1 DRAW_ARROW#property indicator_color1 clrRed#property indicator_style1 STYLE_SOLID#property indicator_width1 1//--- plot LowerFractal#property indicator_label2 "Lower Fractal"#property indicator_type2 DRAW_ARROW#property indicator_color2 clrSteelBlue#property indicator_style2 STYLE_SOLID#property indicator_width2 1//---enum ENUM_TYPE_FRACTAL { TYPE_FRACTAL_ACCURATE = 0, // Accurate fractal TYPE_FRACTAL_INACCURATE = 1, // Inaccurate fractal };//--- input parametersinput ENUM_TYPE_FRACTAL TypeFractals = TYPE_FRACTAL_ACCURATE; // Type of fractalinput int LeftNumUp = 2; // The number of bars on the left for upper fractalsint leftNumUp; // Количество баров слева для верхнего фракталаinput int RightNumUp = 2; // The number of bars on the right for upper fractalsint rightNumUp; // Количество баров справа для верхнего фракталаinput int LeftNumDn = 2; // The number of bars on the left for lower fractalsint leftNumDn; // Количество баров слева для нижнего фракталаinput int RightNumDn = 2; // The number of bars on the right for lower fractalsint rightNumDn; // Количество баров справа для нижнего фрактала//--- indicator buffersdouble BufferUpperFractal[];double BufferLowerFractal[];//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+int OnInit() {//--- indicator buffers mapping SetIndexBuffer(0,BufferUpperFractal); SetIndexBuffer(1,BufferLowerFractal);//--- setting a code from the Wingdings charset as the property of PLOT_ARROW PlotIndexSetInteger(0,PLOT_ARROW,217); PlotIndexSetInteger(1,PLOT_ARROW,218); SetIndexArrow(0,217); SetIndexArrow(1,218); SetIndexEmptyValue(0,EMPTY_VALUE); SetIndexEmptyValue(1,EMPTY_VALUE);//--- leftNumUp=(LeftNumUp<1?1:LeftNumUp); rightNumUp=(RightNumUp<1?1:RightNumUp); leftNumDn=(LeftNumDn<1?1:LeftNumDn); rightNumDn=(RightNumDn<1?1:RightNumDn); string short_name=MQLInfoString(MQL_PROGRAM_NAME)+"("+(string)leftNumUp+","+(string)rightNumUp+")("+(string)leftNumDn+","+(string)rightNumDn+")"; IndicatorSetString(INDICATOR_SHORTNAME,short_name); IndicatorSetInteger(INDICATOR_DIGITS,Digits());//--- return(INIT_SUCCEEDED); }//+------------------------------------------------------------------+//| Custom indicator iteration function |//+------------------------------------------------------------------+int OnCalculate(const int rates_total, const int prev_calculated, const datetime &time[], const double &open[], const double &high[], const double &low[], const double &close[], const long &tick_volume[], const long &volume[], const int &spread[]) {//--- if(rates_total<fmax(leftNumUp+rightNumUp,leftNumDn+rightNumDn)) return(0); int limit=rates_total-prev_calculated; if(limit>0) { ArrayInitialize(BufferUpperFractal,0.0); ArrayInitialize(BufferUpperFractal,0.0); limit=rates_total-fmax(leftNumUp,leftNumDn)-1; } //--- for(int i=limit; i>fmin(rightNumUp,rightNumDn); i--) { if(GetFreeUpperFractal(Symbol(),PERIOD_CURRENT,i,leftNumUp,rightNumUp)>0) BufferUpperFractal[i]=high[i]; if(GetFreeLowerFractal(Symbol(),PERIOD_CURRENT,i,leftNumDn,rightNumDn)>0) BufferLowerFractal[i]=low[i]; }//--- return value of prev_calculated for next call return(rates_total); }//+----------------------------------------------------------------------------+double GetFreeLowerFractal(const string symbol_name,ENUM_TIMEFRAMES timeframe,int shift,int left_dimension=2,int right_dimension=2) { int bars=Bars(symbol_name,timeframe); if(left_dimension<1) left_dimension=1; if(right_dimension<1) right_dimension=1; if(shift-right_dimension<1 || shift+left_dimension>bars-1) return(-1); if(TypeFractals==TYPE_FRACTAL_ACCURATE) { for(int i=shift-1; i>=shift-right_dimension; i--) if(GetPriceLow(symbol_name,timeframe,i)<GetPriceLow(symbol_name,timeframe,i+1)) return(-1); for(int i=shift+1; i<=shift+left_dimension; i++) if(GetPriceLow(symbol_name,timeframe,i)<GetPriceLow(symbol_name,timeframe,i-1)) return(-1); } else { for(int i=shift-1; i>=shift-right_dimension; i--) if(GetPriceLow(symbol_name,timeframe,i)<GetPriceLow(symbol_name,timeframe,shift)) return(-1); for(int i=shift+1; i<=shift+left_dimension; i++) if(GetPriceLow(symbol_name,timeframe,i)<GetPriceLow(symbol_name,timeframe,shift)) return(-1); } return(GetPriceLow(symbol_name,timeframe,shift));} //+----------------------------------------------------------------------------+double GetFreeUpperFractal(const string symbol_name,ENUM_TIMEFRAMES timeframe,int shift,int left_dimension=2,int right_dimension=2) { int bars=Bars(symbol_name,timeframe); if(left_dimension<1) left_dimension=1; if(right_dimension<1) right_dimension=1; if(shift-right_dimension<1 || shift+left_dimension>bars-1) return(-1); if(TypeFractals==TYPE_FRACTAL_ACCURATE) { for(int i=shift-1; i>=shift-right_dimension; i--) if(GetPriceHigh(symbol_name,timeframe,i)>GetPriceHigh(symbol_name,timeframe,i+1)) return(-1); for(int i=shift+1; i<=shift+left_dimension; i++) if(GetPriceHigh(symbol_name,timeframe,i)>GetPriceHigh(symbol_name,timeframe,i-1)) return(-1); } else { for(int i=shift-1; i>=shift-right_dimension; i--) if(GetPriceHigh(symbol_name,timeframe,i)>GetPriceHigh(symbol_name,timeframe,shift)) return(-1); for(int i=shift+1; i<=shift+left_dimension; i++) if(GetPriceHigh(symbol_name,timeframe,i)>GetPriceHigh(symbol_name,timeframe,shift)) return(-1); } return(GetPriceHigh(symbol_name,timeframe,shift));} //+----------------------------------------------------------------------------+double GetPriceHigh(const string symbol_name, ENUM_TIMEFRAMES timeframe, int shift){ double array[1]; if(CopyHigh(symbol_name,timeframe,shift,1,array)==1) return(array[0]); return(-1);}//+----------------------------------------------------------------------------+double GetPriceLow(const string symbol_name, ENUM_TIMEFRAMES timeframe, int shift){ double array[1]; if(CopyLow(symbol_name,timeframe,shift,1,array)==1) return(array[0]); return(-1);}//+----------------------------------------------------------------------------+ ファイル: iFreeNumFractals.mq4 15 kb Any questions from newcomers 初心者の方からの質問 MQL5 MT5 MetaTrader Questions from Beginners MQL5 Vitaly Muzichenko 2017.03.04 19:53 #1377 Artyom Trishkin:2つ目の検索方法を追加しました。ありがとうございます。kodobaseにアップロードされる遺品) Artyom Trishkin 2017.03.04 20:27 #1378 Vitaly Muzichenko:ありがとうございます。ただ、すべてがスーパーです。コドベースへのアップロードが残っている) 既に終了 :)))テストのために送った。 DVlad 2017.03.05 05:31 #1379 こんにちは。私はリナックスを使っています。MT4で複数の通貨ペアを開いているのですが、最大で10種類です。MQL4を使って、チャートタブをある順序で並べるにはどうしたらいいですか?プロファイルを使った作業、1_MQL4.pdfの勉強、インターネットでは結果が出ませんでした。ウラジミール Artyom Trishkin 2017.03.05 06:15 #1380 DVlad:こんにちは。私はリナックスを使っています。MT4で複数の通貨ペアを開いているのですが、最大で10種類です。MQL4を使って、チャートタブをある順序で並べるにはどうしたらいいですか?プロファイルを使った作業、1_MQL4.pdfの勉強、インターネットでは結果が出ませんでした。ウラジミールさん、ありがとうございます。Windowsでも、mql4によるタブの並べ替えができない。必要な順番でチャートを開き、そこに必要なテンプレートを設定するだけです。 1...131132133134135136137138139140141142143144145...1953 新しいコメント 取引の機会を逃しています。 無料取引アプリ 8千を超えるシグナルをコピー 金融ニュースで金融マーケットを探索 新規登録 ログイン スペースを含まないラテン文字 このメールにパスワードが送信されます エラーが発生しました Googleでログイン WebサイトポリシーおよびMQL5.COM利用規約に同意します。 新規登録 MQL5.com WebサイトへのログインにCookieの使用を許可します。 ログインするには、ブラウザで必要な設定を有効にしてください。 ログイン/パスワードをお忘れですか? Googleでログイン
昨日の日付と時刻の調べ方を教えてください。
まあ、必要なことは全部書いてあるから、読めばいいんだけどね。このように。
昨日の日付と時刻をプログラム的に調べる方法を教えてください。
のカレンダーを昨日作成しました。
datetime tim=TimeCurrent()-24*60*60;
MqlDateTime ts;
TimeToStruct(tim,ts);
ts.hour=0;ts.min=0;ts.sec=0;
tim=StructToTime(ts);
現在時刻 - 昨日の暦日開始時刻(!!プレバーD1の開店時刻では ありません)。
プレバーD1の開店時間 - iTime(0,PERIOD_D1,1); 小さな修正あり - 土曜日なら24時間、日曜日なら48時間追加します。
必要なことはすべて書いてあるから、読むだけでいい。このように。
昨日からやり方を考えているのですが、できないので、初めてなので、教えてください。
昨日の15:00のバーのインデックスと今日の7:00のバーのインデックスを、例にあるように日付を明示的に指定せずに見つけるのを手伝ってください。
のカレンダーを昨日作成しました。
datetime tim=TimeCurrent()-24*60*60;
MqlDateTime ts;
TimeToStruct(tim,ts);
ts.hour=0;ts.min=0;ts.sec=0;
tim=StructToTime(ts);
現在時刻 - 昨日のカレンダー上の一日の始まり(!!D1プレバーの開店時刻では ありません。)
プレバーD1の開始時間 - iTime(0,PERIOD_D1,1); 小さな修正 - 土曜なら24時間、日曜なら48時間を追加します。
関数に,ストップバンドをロスレスに移行するためのオーダーチケットと 距離(pips)を送信します。
{
double sl=0.0;
if(OrderSelect(ticket,SELECT_BY_TICKET))
{
if(OrderType()==OP_BUY)
{
if(Bid>=OrderOpenPrice() && Bid-OrderOpenPrice()>=distance*_Point) sl=OrderOpenPrice();
if(OrderStopLoss()!=0 && OrderStopLoss()>=OrderOpenPrice())return;
}
if(OrderType()==OP_SELL)
{
if(Ask<=OrderOpenPrice() && OrderOpenPrice()-Ask>=distance*_Point) sl=OrderOpenPrice();
if(OrderStopLoss()!=0 && OrderStopLoss()<=OrderOpenPrice())return;
}
ResetLastError();
if(sl<=0)return;
if(!OrderModify(OrderTicket(),OrderOpenPrice(),sl,OrderTakeProfit(),0))
{
int error=GetLastError();
rezult=StringConcatenate(OrderSymbol(),": error modifying StopLoss order ",OrderTicket()," ",TypeToStr(OrderType())," №- ",error);
Print(rezult);
}
}
}
...セルゲイさん、ありがとうございます!!!!
クール、EAに機能を引っ張ってくるようにします。結果は後ほど掲載します。
ありがとうございます!!!
2つ目の検索方法を追加しました。
//| iFreeNumFractals.mq4 |
//| Copyright 2017, Artem A. Trishkin, Skype artmedia70 |
//| https://login.mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2017, Artem A. Trishkin, Skype artmedia70"
#property link "https://login.mql5.com/ru/users/artmedia70"
#property version "3.00"
#property strict
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_plots 2
//--- plot UpperFractal
#property indicator_label1 "Upper Fractal"
#property indicator_type1 DRAW_ARROW
#property indicator_color1 clrRed
#property indicator_style1 STYLE_SOLID
#property indicator_width1 1
//--- plot LowerFractal
#property indicator_label2 "Lower Fractal"
#property indicator_type2 DRAW_ARROW
#property indicator_color2 clrSteelBlue
#property indicator_style2 STYLE_SOLID
#property indicator_width2 1
//---
enum ENUM_TYPE_FRACTAL
{
TYPE_FRACTAL_ACCURATE = 0, // Accurate fractal
TYPE_FRACTAL_INACCURATE = 1, // Inaccurate fractal
};
//--- input parameters
input ENUM_TYPE_FRACTAL TypeFractals = TYPE_FRACTAL_ACCURATE; // Type of fractal
input int LeftNumUp = 2; // The number of bars on the left for upper fractals
int leftNumUp; // Количество баров слева для верхнего фрактала
input int RightNumUp = 2; // The number of bars on the right for upper fractals
int rightNumUp; // Количество баров справа для верхнего фрактала
input int LeftNumDn = 2; // The number of bars on the left for lower fractals
int leftNumDn; // Количество баров слева для нижнего фрактала
input int RightNumDn = 2; // The number of bars on the right for lower fractals
int rightNumDn; // Количество баров справа для нижнего фрактала
//--- indicator buffers
double BufferUpperFractal[];
double BufferLowerFractal[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//--- indicator buffers mapping
SetIndexBuffer(0,BufferUpperFractal);
SetIndexBuffer(1,BufferLowerFractal);
//--- setting a code from the Wingdings charset as the property of PLOT_ARROW
PlotIndexSetInteger(0,PLOT_ARROW,217);
PlotIndexSetInteger(1,PLOT_ARROW,218);
SetIndexArrow(0,217);
SetIndexArrow(1,218);
SetIndexEmptyValue(0,EMPTY_VALUE);
SetIndexEmptyValue(1,EMPTY_VALUE);
//---
leftNumUp=(LeftNumUp<1?1:LeftNumUp);
rightNumUp=(RightNumUp<1?1:RightNumUp);
leftNumDn=(LeftNumDn<1?1:LeftNumDn);
rightNumDn=(RightNumDn<1?1:RightNumDn);
string short_name=MQLInfoString(MQL_PROGRAM_NAME)+"("+(string)leftNumUp+","+(string)rightNumUp+")("+(string)leftNumDn+","+(string)rightNumDn+")";
IndicatorSetString(INDICATOR_SHORTNAME,short_name);
IndicatorSetInteger(INDICATOR_DIGITS,Digits());
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
//---
if(rates_total<fmax(leftNumUp+rightNumUp,leftNumDn+rightNumDn)) return(0);
int limit=rates_total-prev_calculated;
if(limit>0) {
ArrayInitialize(BufferUpperFractal,0.0);
ArrayInitialize(BufferUpperFractal,0.0);
limit=rates_total-fmax(leftNumUp,leftNumDn)-1;
}
//---
for(int i=limit; i>fmin(rightNumUp,rightNumDn); i--) {
if(GetFreeUpperFractal(Symbol(),PERIOD_CURRENT,i,leftNumUp,rightNumUp)>0) BufferUpperFractal[i]=high[i];
if(GetFreeLowerFractal(Symbol(),PERIOD_CURRENT,i,leftNumDn,rightNumDn)>0) BufferLowerFractal[i]=low[i];
}
//--- return value of prev_calculated for next call
return(rates_total);
}
//+----------------------------------------------------------------------------+
double GetFreeLowerFractal(const string symbol_name,ENUM_TIMEFRAMES timeframe,int shift,int left_dimension=2,int right_dimension=2) {
int bars=Bars(symbol_name,timeframe);
if(left_dimension<1) left_dimension=1;
if(right_dimension<1) right_dimension=1;
if(shift-right_dimension<1 || shift+left_dimension>bars-1) return(-1);
if(TypeFractals==TYPE_FRACTAL_ACCURATE) {
for(int i=shift-1; i>=shift-right_dimension; i--) if(GetPriceLow(symbol_name,timeframe,i)<GetPriceLow(symbol_name,timeframe,i+1)) return(-1);
for(int i=shift+1; i<=shift+left_dimension; i++) if(GetPriceLow(symbol_name,timeframe,i)<GetPriceLow(symbol_name,timeframe,i-1)) return(-1);
}
else {
for(int i=shift-1; i>=shift-right_dimension; i--) if(GetPriceLow(symbol_name,timeframe,i)<GetPriceLow(symbol_name,timeframe,shift)) return(-1);
for(int i=shift+1; i<=shift+left_dimension; i++) if(GetPriceLow(symbol_name,timeframe,i)<GetPriceLow(symbol_name,timeframe,shift)) return(-1);
}
return(GetPriceLow(symbol_name,timeframe,shift));
}
//+----------------------------------------------------------------------------+
double GetFreeUpperFractal(const string symbol_name,ENUM_TIMEFRAMES timeframe,int shift,int left_dimension=2,int right_dimension=2) {
int bars=Bars(symbol_name,timeframe);
if(left_dimension<1) left_dimension=1;
if(right_dimension<1) right_dimension=1;
if(shift-right_dimension<1 || shift+left_dimension>bars-1) return(-1);
if(TypeFractals==TYPE_FRACTAL_ACCURATE) {
for(int i=shift-1; i>=shift-right_dimension; i--) if(GetPriceHigh(symbol_name,timeframe,i)>GetPriceHigh(symbol_name,timeframe,i+1)) return(-1);
for(int i=shift+1; i<=shift+left_dimension; i++) if(GetPriceHigh(symbol_name,timeframe,i)>GetPriceHigh(symbol_name,timeframe,i-1)) return(-1);
}
else {
for(int i=shift-1; i>=shift-right_dimension; i--) if(GetPriceHigh(symbol_name,timeframe,i)>GetPriceHigh(symbol_name,timeframe,shift)) return(-1);
for(int i=shift+1; i<=shift+left_dimension; i++) if(GetPriceHigh(symbol_name,timeframe,i)>GetPriceHigh(symbol_name,timeframe,shift)) return(-1);
}
return(GetPriceHigh(symbol_name,timeframe,shift));
}
//+----------------------------------------------------------------------------+
double GetPriceHigh(const string symbol_name, ENUM_TIMEFRAMES timeframe, int shift){
double array[1];
if(CopyHigh(symbol_name,timeframe,shift,1,array)==1) return(array[0]);
return(-1);
}
//+----------------------------------------------------------------------------+
double GetPriceLow(const string symbol_name, ENUM_TIMEFRAMES timeframe, int shift){
double array[1];
if(CopyLow(symbol_name,timeframe,shift,1,array)==1) return(array[0]);
return(-1);
}
//+----------------------------------------------------------------------------+
2つ目の検索方法を追加しました。
ありがとうございます。
kodobaseにアップロードされる遺品)
ありがとうございます。ただ、すべてがスーパーです。
コドベースへのアップロードが残っている)
こんにちは。
私はリナックスを使っています。MT4で複数の通貨ペアを開いているのですが、最大で10種類です。MQL4を使って、チャートタブをある順序で並べるにはどうしたらいいですか?
プロファイルを使った作業、1_MQL4.pdfの勉強、インターネットでは結果が出ませんでした。
ウラジミール
こんにちは。
私はリナックスを使っています。MT4で複数の通貨ペアを開いているのですが、最大で10種類です。MQL4を使って、チャートタブをある順序で並べるにはどうしたらいいですか?
プロファイルを使った作業、1_MQL4.pdfの勉強、インターネットでは結果が出ませんでした。
ウラジミールさん、ありがとうございます。
Windowsでも、mql4によるタブの並べ替えができない。
必要な順番でチャートを開き、そこに必要なテンプレートを設定するだけです。