HELP !!!! 将一个指标从MT4转换到MT5。 - 页 3 1234567891011 新评论 [删除] 2015.03.20 21:45 #21 10937: 哦,你想看到一个delta(差异),用它来猜测价格更倾向于哪个方向)))))。 嗯,这是一个人提到它时的第一个想法 Ваня 2017.01.27 12:35 #22 试图测试MT5。在MT4中我使用IchimokuAlert_v3指标我从这里得到了它https://www.forex-tsd.com/forum/debates-discussions/1175-ichimoku-alert/page2#comment_418797希望有知识渊博的人将其转换为MT5。我试图用这里的方法来转换http://metatrader5.blogspot.com/2009/10/rewrite-mql-4-to-mql-5-script.html编译时有55个错误 附加的文件: IchimokuAlert_v3.mq4 8 kb mq4_IchimokuAlert_v3.mq5 10 kb --- 2017.01.27 14:44 #23 Ваня:试图测试MT5。在MT4中我使用IchimokuAlert_v3指标我从这里得到了它https://www.forex-tsd.com/forum/debates-discussions/1175-ichimoku-alert/page2#comment_418797希望有知识渊博的人将其转换为MT5。我试图用这里的方法来转换http://metatrader5.blogspot.com/2009/10/rewrite-mql-4-to-mql-5-script.html编译时有55个错误。从MT5交割中打开Ishimoku会更容易。并从你的警报中复制一个代码块到其中。//---- string Msg,Subj; if (AlertType == 1 || AlertType == 3) { if (Tenkan_Buffer[1]>Kijun_Buffer[1] && Tenkan_Buffer[2]<Kijun_Buffer[2] && !UptrendAlert1)......... Ваня 2017.01.27 14:59 #24 o_O:你从mt5的交付中打开Ishimoku会更容易。并从你的警报中复制一个代码块到其中。//---- string Msg,Subj; if (AlertType == 1 || AlertType == 3) { if (Tenkan_Buffer[1]>Kijun_Buffer[1] && Tenkan_Buffer[2]<Kijun_Buffer[2] && !UptrendAlert1).........谢谢你!好男人。你能告诉我这段代码应该插在哪一行之间吗?我把块状物放在最后。我得到了6个编译器错误。这要归咎于。 136行 if (AlertType == 1 || AlertType == 3)156行 if (AlertType == 2 || AlertType == 3)175行 return(rate_total)。176行在括号内发誓 }180行 如果(MsgAlerts)Alert(msgText)。181行 if (eMailAlerts)SendMail(eMailSub, msgText);//+------------------------------------------------------------------+//| Ichimoku.mq5 |//| Copyright 2009, MetaQuotes Software Corp. |//| http://www.mql5.com |//+------------------------------------------------------------------+#property copyright "2010, MetaQuotes Software Corp."#property link "http://www.mql5.com"#property description "Ichimoku Kinko Hyo"//--- indicator settings#property indicator_chart_window#property indicator_buffers 5#property indicator_plots 4#property indicator_type1 DRAW_LINE#property indicator_type2 DRAW_LINE#property indicator_type3 DRAW_FILLING#property indicator_type4 DRAW_LINE#property indicator_color1 Red#property indicator_color2 Blue#property indicator_color3 SandyBrown,Thistle#property indicator_color4 Lime#property indicator_label1 "Tenkan-sen"#property indicator_label2 "Kijun-sen"#property indicator_label3 "Senkou Span A;Senkou Span B"#property indicator_label4 "Chikou Span"//--- input parametersinput int InpTenkan=9; // Tenkan-seninput int InpKijun=26; // Kijun-seninput int InpSenkou=52; // Senkou Span B//--- indicator buffersdouble ExtTenkanBuffer[];double ExtKijunBuffer[];double ExtSpanABuffer[];double ExtSpanBBuffer[];double ExtChikouBuffer[];//+------------------------------------------------------------------+//| Custom indicator initialization function |//+------------------------------------------------------------------+void OnInit() {//--- indicator buffers mapping SetIndexBuffer(0,ExtTenkanBuffer,INDICATOR_DATA); SetIndexBuffer(1,ExtKijunBuffer,INDICATOR_DATA); SetIndexBuffer(2,ExtSpanABuffer,INDICATOR_DATA); SetIndexBuffer(3,ExtSpanBBuffer,INDICATOR_DATA); SetIndexBuffer(4,ExtChikouBuffer,INDICATOR_DATA);//--- IndicatorSetInteger(INDICATOR_DIGITS,_Digits+1);//--- sets first bar from what index will be drawn PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,InpTenkan); PlotIndexSetInteger(1,PLOT_DRAW_BEGIN,InpKijun); PlotIndexSetInteger(2,PLOT_DRAW_BEGIN,InpSenkou-1);//--- lines shifts when drawing PlotIndexSetInteger(2,PLOT_SHIFT,InpKijun); PlotIndexSetInteger(3,PLOT_SHIFT,-InpKijun);//--- change labels for DataWindow PlotIndexSetString(0,PLOT_LABEL,"Tenkan-sen("+string(InpTenkan)+")"); PlotIndexSetString(1,PLOT_LABEL,"Kijun-sen("+string(InpKijun)+")"); PlotIndexSetString(2,PLOT_LABEL,"Senkou Span A;Senkou Span B("+string(InpSenkou)+")");//--- initialization done }//+------------------------------------------------------------------+//| get highest value for range |//+------------------------------------------------------------------+double Highest(const double&array[],int range,int fromIndex) { double res=0;//--- res=array[fromIndex]; for(int i=fromIndex;i>fromIndex-range && i>=0;i--) { if(res<array[i]) res=array[i]; }//--- return(res); }//+------------------------------------------------------------------+//| get lowest value for range |//+------------------------------------------------------------------+double Lowest(const double&array[],int range,int fromIndex) { double res=0;//--- res=array[fromIndex]; for(int i=fromIndex;i>fromIndex-range && i>=0;i--) { if(res>array[i]) res=array[i]; }//--- return(res); }//+------------------------------------------------------------------+//| Ichimoku Kinko Hyo |//+------------------------------------------------------------------+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[]) { int limit;//--- if(prev_calculated==0) limit=0; else limit=prev_calculated-1;//--- for(int i=limit;i<rates_total && !IsStopped();i++) { ExtChikouBuffer[i]=close[i]; //--- tenkan sen double _high=Highest(high,InpTenkan,i); double _low=Lowest(low,InpTenkan,i); ExtTenkanBuffer[i]=(_high+_low)/2.0; //--- kijun sen _high=Highest(high,InpKijun,i); _low=Lowest(low,InpKijun,i); ExtKijunBuffer[i]=(_high+_low)/2.0; //--- senkou span a ExtSpanABuffer[i]=(ExtTenkanBuffer[i]+ExtKijunBuffer[i])/2.0; //--- senkou span b _high=Highest(high,InpSenkou,i); _low=Lowest(low,InpSenkou,i); ExtSpanBBuffer[i]=(_high+_low)/2.0; }//--- done return(rates_total); }//+------------------------------------------------------------------+//---- string Msg,Subj; if (AlertType == 1 || AlertType == 3) { if (Tenkan_Buffer[1]>Kijun_Buffer[1] && Tenkan_Buffer[2]<Kijun_Buffer[2] && !UptrendAlert1) { Subj = "Tenkan crosses Kijun: "+Symbol()+" on M"+Period(); Msg = "BUY Signal --- : "+Subj+ " @ "+DoubleToStr(Close[1],Digits) + ", @ " + TimeToStr(TimeLocal(),TIME_SECONDS); UptrendAlert1 = true; DntrendAlert1 = false; DoAlerts(Msg,Subj); } if ( Tenkan_Buffer[1]<Kijun_Buffer[1] && Tenkan_Buffer[2]>Kijun_Buffer[2] && !DntrendAlert1) { Subj = "Tenkan crosses Kijun: "+Symbol()+" on M"+Period(); Msg = "SELL Signal --- : "+Subj+ " @ "+DoubleToStr(Close[1],Digits) + ", @ " + TimeToStr(TimeLocal(),TIME_SECONDS); UptrendAlert1 = false; DntrendAlert1 = true; DoAlerts(Msg,Subj); } } if (AlertType == 2 || AlertType == 3) { if (Close[1]>Close[1+Kijun] && Close[2]<Close[2+Kijun] && !UptrendAlert2) { Subj = "Kijun crossed Price: "+Symbol()+" on M"+Period(); Msg = "BUY Signal --- : "+Subj+ " @ "+DoubleToStr(Close[1],Digits) + ", @ " + TimeToStr(TimeLocal(),TIME_SECONDS); DntrendAlert2 = false; UptrendAlert2 = true; DoAlerts(Msg,Subj); } if (Close[1]<Close[1+Kijun] && Close[2]>Close[2+Kijun] && !DntrendAlert2) { Subj = "Kijun crossed Price: "+Symbol()+" on M"+Period(); Msg = "SELL Signal --- : "+Subj+ " @ "+DoubleToStr(Close[1],Digits) + ", @ " + TimeToStr(TimeLocal(),TIME_SECONDS); DntrendAlert2 = true; UptrendAlert2 = false; DoAlerts(Msg,Subj); } } return(rates_total);}void DoAlerts(string msgText, string eMailSub){ if (MsgAlerts) Alert(msgText); if (eMailAlerts) SendMail(eMailSub, msgText);}//+------------------------------------------------------------------+ HELP !!!! convert an 求高手编写mt5的三线kdj指标,非常感谢~ 向大家求助一个 ROC 指标 的问题 Evgeny Belyaev 2017.01.28 15:15 #25 Ваня:谢谢你!好男人。你能告诉我这段代码应该插在哪一行之间吗? 联系Freelance,他们会在正确的地方插入代码片。 Ваня 2017.01.28 17:41 #26 Evgeny Belyaev: 去找一个自由职业者,他们会把代码片放在正确的地方。 我甚至不知道什么是 "自由职业"。 Vladimir Karputov 2017.01.28 17:44 #27 Ваня: 我甚至不知道什么是 "自由职业"。自由职业者。 Evgeny Belyaev 2017.01.28 23:00 #28 Ваня: 我甚至不知道什么是 "自由职业"。 你现在有吗? Ваня 2017.01.29 05:10 #29 Evgeny Belyaev: 现在你知道了吗?是的,我的印象是,在俄语的主题上,人们不再理解俄语。此主题 "HELP !!!! 将一个指标从MT4转换到MT5。你建议去哪里? 自由职业者 "的条款。II.订购流程一个订单在这个过程中会经过以下步骤。工作协议TOR协议原型/模型示范工作交付付款方式 Georgiy Merts 2017.01.29 06:05 #30 Ваня:是的,我的印象是,在俄语的主题上,人们不再理解俄语。此主题 "HELP !!!! 将一个指标从MT4转换到MT5。你建议去哪里? 自由职业者 "的条款。付款方式是的,想象一下,你所建议的是值得付出一些努力的,因此也值得花钱。 大家都听得懂俄语,但 "收费 "的忽悠就没啥意思了。 但如果你有一个成功的交易经验,其中你会需要一个指标,也许有人会同意做一些没有钱的事情,以换取一个盈利的交易理念。但同时--纯粹是为了 "好名声"--恐怕不会有多少人愿意这样做...... 1234567891011 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
哦,你想看到一个delta(差异),用它来猜测价格更倾向于哪个方向)))))。
试图测试MT5。
在MT4中我使用IchimokuAlert_v3指标
我从这里得到了它https://www.forex-tsd.com/forum/debates-discussions/1175-ichimoku-alert/page2#comment_418797
希望有知识渊博的人将其转换为MT5。
我试图用这里的方法来转换http://metatrader5.blogspot.com/2009/10/rewrite-mql-4-to-mql-5-script.html
编译时有55个错误
试图测试MT5。
在MT4中我使用IchimokuAlert_v3指标
我从这里得到了它https://www.forex-tsd.com/forum/debates-discussions/1175-ichimoku-alert/page2#comment_418797
希望有知识渊博的人将其转换为MT5。
我试图用这里的方法来转换http://metatrader5.blogspot.com/2009/10/rewrite-mql-4-to-mql-5-script.html
编译时有55个错误。
从MT5交割中打开Ishimoku会更容易。
并从你的警报中复制一个代码块到其中。
string Msg,Subj;
if (AlertType == 1 || AlertType == 3)
{
if (Tenkan_Buffer[1]>Kijun_Buffer[1] && Tenkan_Buffer[2]<Kijun_Buffer[2] && !UptrendAlert1)
...
...
...
你从mt5的交付中打开Ishimoku会更容易。
并从你的警报中复制一个代码块到其中。
string Msg,Subj;
if (AlertType == 1 || AlertType == 3)
{
if (Tenkan_Buffer[1]>Kijun_Buffer[1] && Tenkan_Buffer[2]<Kijun_Buffer[2] && !UptrendAlert1)
...
...
...
谢谢你!好男人。
你能告诉我这段代码应该插在哪一行之间吗?
我把块状物放在最后。我得到了6个编译器错误。
这要归咎于。
136行 if (AlertType == 1 || AlertType == 3)
156行 if (AlertType == 2 || AlertType == 3)
175行 return(rate_total)。
176行在括号内发誓 }
180行 如果(MsgAlerts)Alert(msgText)。
181行 if (eMailAlerts)SendMail(eMailSub, msgText);
//| Ichimoku.mq5 |
//| Copyright 2009, MetaQuotes Software Corp. |
//| http://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "2010, MetaQuotes Software Corp."
#property link "http://www.mql5.com"
#property description "Ichimoku Kinko Hyo"
//--- indicator settings
#property indicator_chart_window
#property indicator_buffers 5
#property indicator_plots 4
#property indicator_type1 DRAW_LINE
#property indicator_type2 DRAW_LINE
#property indicator_type3 DRAW_FILLING
#property indicator_type4 DRAW_LINE
#property indicator_color1 Red
#property indicator_color2 Blue
#property indicator_color3 SandyBrown,Thistle
#property indicator_color4 Lime
#property indicator_label1 "Tenkan-sen"
#property indicator_label2 "Kijun-sen"
#property indicator_label3 "Senkou Span A;Senkou Span B"
#property indicator_label4 "Chikou Span"
//--- input parameters
input int InpTenkan=9; // Tenkan-sen
input int InpKijun=26; // Kijun-sen
input int InpSenkou=52; // Senkou Span B
//--- indicator buffers
double ExtTenkanBuffer[];
double ExtKijunBuffer[];
double ExtSpanABuffer[];
double ExtSpanBBuffer[];
double ExtChikouBuffer[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
void OnInit()
{
//--- indicator buffers mapping
SetIndexBuffer(0,ExtTenkanBuffer,INDICATOR_DATA);
SetIndexBuffer(1,ExtKijunBuffer,INDICATOR_DATA);
SetIndexBuffer(2,ExtSpanABuffer,INDICATOR_DATA);
SetIndexBuffer(3,ExtSpanBBuffer,INDICATOR_DATA);
SetIndexBuffer(4,ExtChikouBuffer,INDICATOR_DATA);
//---
IndicatorSetInteger(INDICATOR_DIGITS,_Digits+1);
//--- sets first bar from what index will be drawn
PlotIndexSetInteger(0,PLOT_DRAW_BEGIN,InpTenkan);
PlotIndexSetInteger(1,PLOT_DRAW_BEGIN,InpKijun);
PlotIndexSetInteger(2,PLOT_DRAW_BEGIN,InpSenkou-1);
//--- lines shifts when drawing
PlotIndexSetInteger(2,PLOT_SHIFT,InpKijun);
PlotIndexSetInteger(3,PLOT_SHIFT,-InpKijun);
//--- change labels for DataWindow
PlotIndexSetString(0,PLOT_LABEL,"Tenkan-sen("+string(InpTenkan)+")");
PlotIndexSetString(1,PLOT_LABEL,"Kijun-sen("+string(InpKijun)+")");
PlotIndexSetString(2,PLOT_LABEL,"Senkou Span A;Senkou Span B("+string(InpSenkou)+")");
//--- initialization done
}
//+------------------------------------------------------------------+
//| get highest value for range |
//+------------------------------------------------------------------+
double Highest(const double&array[],int range,int fromIndex)
{
double res=0;
//---
res=array[fromIndex];
for(int i=fromIndex;i>fromIndex-range && i>=0;i--)
{
if(res<array[i]) res=array[i];
}
//---
return(res);
}
//+------------------------------------------------------------------+
//| get lowest value for range |
//+------------------------------------------------------------------+
double Lowest(const double&array[],int range,int fromIndex)
{
double res=0;
//---
res=array[fromIndex];
for(int i=fromIndex;i>fromIndex-range && i>=0;i--)
{
if(res>array[i]) res=array[i];
}
//---
return(res);
}
//+------------------------------------------------------------------+
//| Ichimoku Kinko Hyo |
//+------------------------------------------------------------------+
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[])
{
int limit;
//---
if(prev_calculated==0) limit=0;
else limit=prev_calculated-1;
//---
for(int i=limit;i<rates_total && !IsStopped();i++)
{
ExtChikouBuffer[i]=close[i];
//--- tenkan sen
double _high=Highest(high,InpTenkan,i);
double _low=Lowest(low,InpTenkan,i);
ExtTenkanBuffer[i]=(_high+_low)/2.0;
//--- kijun sen
_high=Highest(high,InpKijun,i);
_low=Lowest(low,InpKijun,i);
ExtKijunBuffer[i]=(_high+_low)/2.0;
//--- senkou span a
ExtSpanABuffer[i]=(ExtTenkanBuffer[i]+ExtKijunBuffer[i])/2.0;
//--- senkou span b
_high=Highest(high,InpSenkou,i);
_low=Lowest(low,InpSenkou,i);
ExtSpanBBuffer[i]=(_high+_low)/2.0;
}
//--- done
return(rates_total);
}
//+------------------------------------------------------------------+
//----
string Msg,Subj;
if (AlertType == 1 || AlertType == 3)
{
if (Tenkan_Buffer[1]>Kijun_Buffer[1] && Tenkan_Buffer[2]<Kijun_Buffer[2] && !UptrendAlert1)
{
Subj = "Tenkan crosses Kijun: "+Symbol()+" on M"+Period();
Msg = "BUY Signal --- : "+Subj+ " @ "+DoubleToStr(Close[1],Digits) + ", @ " + TimeToStr(TimeLocal(),TIME_SECONDS);
UptrendAlert1 = true;
DntrendAlert1 = false;
DoAlerts(Msg,Subj);
}
if ( Tenkan_Buffer[1]<Kijun_Buffer[1] && Tenkan_Buffer[2]>Kijun_Buffer[2] && !DntrendAlert1)
{
Subj = "Tenkan crosses Kijun: "+Symbol()+" on M"+Period();
Msg = "SELL Signal --- : "+Subj+ " @ "+DoubleToStr(Close[1],Digits) + ", @ " + TimeToStr(TimeLocal(),TIME_SECONDS);
UptrendAlert1 = false;
DntrendAlert1 = true;
DoAlerts(Msg,Subj);
}
}
if (AlertType == 2 || AlertType == 3)
{
if (Close[1]>Close[1+Kijun] && Close[2]<Close[2+Kijun] && !UptrendAlert2)
{
Subj = "Kijun crossed Price: "+Symbol()+" on M"+Period();
Msg = "BUY Signal --- : "+Subj+ " @ "+DoubleToStr(Close[1],Digits) + ", @ " + TimeToStr(TimeLocal(),TIME_SECONDS);
DntrendAlert2 = false;
UptrendAlert2 = true;
DoAlerts(Msg,Subj);
}
if (Close[1]<Close[1+Kijun] && Close[2]>Close[2+Kijun] && !DntrendAlert2)
{
Subj = "Kijun crossed Price: "+Symbol()+" on M"+Period();
Msg = "SELL Signal --- : "+Subj+ " @ "+DoubleToStr(Close[1],Digits) + ", @ " + TimeToStr(TimeLocal(),TIME_SECONDS);
DntrendAlert2 = true;
UptrendAlert2 = false;
DoAlerts(Msg,Subj);
}
}
return(rates_total);
}
void DoAlerts(string msgText, string eMailSub)
{
if (MsgAlerts) Alert(msgText);
if (eMailAlerts) SendMail(eMailSub, msgText);
}
//+------------------------------------------------------------------+
谢谢你!好男人。
你能告诉我这段代码应该插在哪一行之间吗?
去找一个自由职业者,他们会把代码片放在正确的地方。
我甚至不知道什么是 "自由职业"。
我甚至不知道什么是 "自由职业"。
现在你知道了吗?
是的,我的印象是,在俄语的主题上,人们不再理解俄语。
此主题 "HELP !!!! 将一个指标从MT4转换到MT5。
你建议去哪里?
自由职业者 "的条款。
II.订购流程
是的,我的印象是,在俄语的主题上,人们不再理解俄语。
此主题 "HELP !!!! 将一个指标从MT4转换到MT5。
你建议去哪里?
自由职业者 "的条款。
是的,想象一下,你所建议的是值得付出一些努力的,因此也值得花钱。
大家都听得懂俄语,但 "收费 "的忽悠就没啥意思了。
但如果你有一个成功的交易经验,其中你会需要一个指标,也许有人会同意做一些没有钱的事情,以换取一个盈利的交易理念。但同时--纯粹是为了 "好名声"--恐怕不会有多少人愿意这样做......