为我把这个MT3转换成MT4 - 非常容易 - 页 2 1234 新评论 [删除] 2006.04.16 07:48 #11 为我把这个MT3转换成MT4 - 非常容易 我正在考虑从MT4转换到MT3。 我刚刚完成编辑我的第一个专家顾问。 我花了大约4周时间学习了足够多的MT和MQL4知识,最终将我的策略编程完成,但现在我想我可能只是将程序转换为MQL2。 从我在这个论坛上读到的内容来看,我不认为MT4有什么优势。 我所读到的,以及通过回测我的EA所了解到的,是MT4策略测试器 并不工作。仅仅因为这个原因,我认为多花几天时间进行切换才有意义,这样我就可以用MT3进行准确的回测了。 我已经下载并安装了MT3,并看了一下编辑器的字典。我可以看到,MT3的功能比MT4少,但我认为这不会是一个大问题。 我的MQL4 EA的一个功能是我非常依赖的,就是用于存储原始挂单价格的OrderMagicNumber,当订单被执行时,价格会随着滑点而改变。 MQL2订单没有OrderMagicNumber,但我确实注意到在MQL2字典里有一个名为OrderValue的函数,在其描述中,该函数可以检索订单的注释(VAL_COMMENT)。 如果我可以使用注释来存储首选价格,我想我可以切换到MT3。然而,我无法在字典中找到如何设置订单注释。SetOrder函数描述中没有将 "评论 "列为其参数之一。 有谁熟悉MQL2的这一功能,可以告诉我如何设置订单注释? treberk 2006.04.16 10:26 #12 BC Brett: 从我在这个论坛上读到的内容来看,我不认为MT4有什么优势。 我所读到的,以及通过回测我的EA所了解到的,是MT4策略测试器并不工作。仅仅因为这个原因,我认为多花几天时间进行转换才有意义,这样我就可以用MT3进行准确的回测。 那么,你在哪里看到MT3回测器 比MT4回测器更可靠? 我认为你在这方面的信息非常错误! MT4回测可以非常可靠,但这取决于你拥有的历史数据的质量和你的建模质量%。 您不能像在MT4编程中那样,在MQL2中为发送的订单添加 "评论 "或指定 "魔法数字"。MT4编程比MQL2编程更先进,为什么要向后退? treberk 2006.04.16 10:32 #13 你可能想在这里阅读关于MT4回溯测试的内容:http://www.strategybuilderfx.com/forums/showthread.php?t=15309&page=1&pp=8 (如果你不能访问该页面,你需要注册成为会员 - 这是免费的) [删除] 2006.04.17 00:22 #14 根据我在这里和那里收集到的信息,对回测有点认真的人使用WealthLab、Amibroker或MetaStocks等软件,而不是mt3或mt4。 也许,如果你不使用任何股价内的数据,mt4的回测是可以的。例如,如果你使用日线,你应该只使用日线的开盘和收盘值(如果你设置了止损或止盈,甚至不使用高点和低点)。没有其他东西。 原因是,尽管他们的 "建模质量 "可能会说,唯一使用真实数据的mt4回测方法是"仅开盘价"。 "每点 "和 "控制点 "的方法是很好的童话故事。就个人而言,我不会根据童话般的数据回测来交易资金。 我还在学习mt4,但根据我的经验,我不会以任何其他方式使用mt4回测。我甚至不能100%确定我建议的方式是否100%可靠。如果我想做良好的回测,我会得到一个回测软件。 关于mt4与mt3的实盘交易:从我在这里和那里收集到的信息来看;-)mt4不可信。有时,mt4说没有执行的订单,实际上是被执行了!这是由经纪人报告的。这是由经纪人报告的。如果这是真的,那么提供mt4实时交易的经纪商并不认真。或者,他们确保mt4的错误没有发生在他们的平台上,这也是可能的。 另一方面,"我在这里和那里收集到的信息 "表明,用mt3进行实盘交易是可能的。 eliseexige 2006.05.14 19:29 #15 为我把这个MT3转换成MT4 - 非常容易 大家好,如果有人能帮我把这个转换为MT4语言,我将非常感激--我们的经纪人刚刚升级为MT4。 以下是代码。 /*[[ Name := TTM Stoch Author := Scott Black Link := http://www.tradethemajors.com Separate Window := yes First Color := Cyan First Draw Type := Line Use Second Data := yes second Color := Magenta second Draw Type := Line Minimum Chart Limits := 0.000000 Maximum Chart Limits := 100.000000 ]]*/ Inputs : Slw(8),Pds(13),Slwsignal(9); Variables : AA(0),bb(0),aa1(0),cnt1(0); Variables : shift(0), cnt(0), loopbegin(0),loopbegin2(0),loopbegin3(0), first(True), prevbars(0); Variables : sum(0), smconst(0),smconst1(0), prev(0),prev1(0),prev2(0),prev3(0), weight(0), linear(0); Variables : MAValue(0),MAValue2(0),mavalue3(0), MAstring(""); Variables : MyHigh(0),MyLow(0),counter(0),Price(0),Price1(0); SetLoopCount(0); smconst = 2 / (1+SLW); smconst1 = 2 / (1+slwsignal); loopbegin = loopbegin+1; For shift = 2000 Downto 0 Begin prev = GetIndexValue2(shift+1); AA =100* ((Close[shift] - Low[Lowest(MODE_LOW,shift+pds,Pds)]) / (High - low[Lowest(MODE_LOW,shift+pds,Pds)])); MAValue2 = smconst * (aa-prev) + prev; SetIndexValue2(shift,MAValue2); loopbegin = loopbegin-1; End; loopbegin2 = loopbegin2+1; For shift = 2000-pds downto 0 Begin MyHigh = -999999; MyLow = 99999999; For counter = shift to pds + shift Begin PRICE= GetIndexValue2(counter); If Price > MyHigh Then MyHigh = Price; If pds <= 0 Then MyHigh = Price; If Price < MyLow Then MyLow = Price; If pds <= 0 Then MyLow = Price; end; prev1 = GetIndexValue(shift+1); aa1=GetIndexValue2(shift); bb=100*(aa1-mylow)/(myhigh-mylow); MAValue = smconst * (bb-prev1) + prev1; SetIndexValue(shift,mavalue); loopbegin2 = loopbegin2-1; End; loopbegin3 = loopbegin3+1; For shift = 2000 downto 0 Begin prev2=GetIndexValue2(shift+1); prev3=GetIndexValue(shift); MAValue3= smconst1 * (prev3-prev2) +Prev2; SetIndexValue2(shift,mavalue3); loopbegin3 = loopbegin3-1; end; /*[[ 非常感谢! Convert this MT3 into Linear Regression Indicator I have a mt3 hellkkas 2006.05.14 23:01 #16 scott TTM: 大家好,如果有人能把这个转换成MT4语言,我将非常感激--我们的经纪人刚刚升级到MT4。以下是代码。 /*[[ Name := TTM Stoch Author := Scott Black Link := http://www.tradethemajors.com Separate Window := yes First Color := Cyan First Draw Type := Line Use Second Data := yes second Color := Magenta second Draw Type := Line Minimum Chart Limits := 0.000000 Maximum Chart Limits := 100.000000 ]]*/ Inputs : Slw(8),Pds(13),Slwsignal(9); Variables : AA(0),bb(0),aa1(0),cnt1(0); Variables : shift(0), cnt(0), loopbegin(0),loopbegin2(0),loopbegin3(0), first(True), prevbars(0); Variables : sum(0), smconst(0),smconst1(0), prev(0),prev1(0),prev2(0),prev3(0), weight(0), linear(0); Variables : MAValue(0),MAValue2(0),mavalue3(0), MAstring(""); Variables : MyHigh(0),MyLow(0),counter(0),Price(0),Price1(0); SetLoopCount(0); smconst = 2 / (1+SLW); smconst1 = 2 / (1+slwsignal); loopbegin = loopbegin+1; For shift = 2000 Downto 0 Begin prev = GetIndexValue2(shift+1); AA =100* ((Close[shift] - Low[Lowest(MODE_LOW,shift+pds,Pds)]) / (High - low[Lowest(MODE_LOW,shift+pds,Pds)])); MAValue2 = smconst * (aa-prev) + prev; SetIndexValue2(shift,MAValue2); loopbegin = loopbegin-1; End; loopbegin2 = loopbegin2+1; For shift = 2000-pds downto 0 Begin MyHigh = -999999; MyLow = 99999999; For counter = shift to pds + shift Begin PRICE= GetIndexValue2(counter); If Price > MyHigh Then MyHigh = Price; If pds <= 0 Then MyHigh = Price; If Price < MyLow Then MyLow = Price; If pds <= 0 Then MyLow = Price; end; prev1 = GetIndexValue(shift+1); aa1=GetIndexValue2(shift); bb=100*(aa1-mylow)/(myhigh-mylow); MAValue = smconst * (bb-prev1) + prev1; SetIndexValue(shift,mavalue); loopbegin2 = loopbegin2-1; End; loopbegin3 = loopbegin3+1; For shift = 2000 downto 0 Begin prev2=GetIndexValue2(shift+1); prev3=GetIndexValue(shift); MAValue3= smconst1 * (prev3-prev2) +Prev2; SetIndexValue2(shift,mavalue3); loopbegin3 = loopbegin3-1; end; /*[[ 非常感谢! 嗨,斯科特... 试试这个.... 附加的文件: ttm_stoch.mq4 5 kb eliseexige 2006.05.15 02:03 #17 Hellkas, 恐怕这并不完全可行。 请到www.compoundfx.com/mt3stoch.jpg,看看它在MT3图表上应该是什么样子的--我试图上传这个,但没有成功。 谢谢你的努力,也许这能帮助你? 当我在MT4中绘制它时,我只看到一条洋红色的线,而不是青色的--尽管我看到输入是存在的。 斯科特 yousky 2006.05.15 12:33 #18 你好。 首先hellkas 在用我的工具Mql2Mq4转换mql指标后,我很感激你保留了我的文件头!!。 那么转换后的指标不能正常工作是正常的,如果你在Metatrade 4的专家信息日志TabSheet(面板)中查看,你会看到 "Zero Devide exception",就像这张图。在指标脚本中,你使用了除法运算符,有些时候是NULL:-(这就是为什么会出现这个错误,我再说一遍,在Metatrade 3中,没有产生任何异常,但在Metatrade 4中却有。 我把转换后的程序放在MT3上运行,你可以看到我做了什么改变。 再见 附加的文件: exception.jpg 52 kb ttmstoch.mq4 5 kb eliseexige 2006.05.15 12:45 #19 yousky。 非常感谢,它看起来很完美! 我很欣赏它。 -SB eliseexige 2006.05.16 11:58 #20 yousky。 好吧,经过进一步审查,它还没有完全达到目的。 它在MT4上仍然给我错误的读数,即线条没有在它们应该的地方交叉。 我使用了你放在这里的代码。 有什么想法吗? 庄家 1234 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
为我把这个MT3转换成MT4 - 非常容易
我正在考虑从MT4转换到MT3。
我刚刚完成编辑我的第一个专家顾问。
我花了大约4周时间学习了足够多的MT和MQL4知识,最终将我的策略编程完成,但现在我想我可能只是将程序转换为MQL2。
从我在这个论坛上读到的内容来看,我不认为MT4有什么优势。
我所读到的,以及通过回测我的EA所了解到的,是MT4策略测试器 并不工作。仅仅因为这个原因,我认为多花几天时间进行切换才有意义,这样我就可以用MT3进行准确的回测了。
我已经下载并安装了MT3,并看了一下编辑器的字典。我可以看到,MT3的功能比MT4少,但我认为这不会是一个大问题。
我的MQL4 EA的一个功能是我非常依赖的,就是用于存储原始挂单价格的OrderMagicNumber,当订单被执行时,价格会随着滑点而改变。
MQL2订单没有OrderMagicNumber,但我确实注意到在MQL2字典里有一个名为OrderValue的函数,在其描述中,该函数可以检索订单的注释(VAL_COMMENT)。
如果我可以使用注释来存储首选价格,我想我可以切换到MT3。然而,我无法在字典中找到如何设置订单注释。SetOrder函数描述中没有将 "评论 "列为其参数之一。
有谁熟悉MQL2的这一功能,可以告诉我如何设置订单注释?
从我在这个论坛上读到的内容来看,我不认为MT4有什么优势。
我所读到的,以及通过回测我的EA所了解到的,是MT4策略测试器并不工作。仅仅因为这个原因,我认为多花几天时间进行转换才有意义,这样我就可以用MT3进行准确的回测。
那么,你在哪里看到MT3回测器 比MT4回测器更可靠?
我认为你在这方面的信息非常错误!
MT4回测可以非常可靠,但这取决于你拥有的历史数据的质量和你的建模质量%。
您不能像在MT4编程中那样,在MQL2中为发送的订单添加 "评论 "或指定 "魔法数字"。MT4编程比MQL2编程更先进,为什么要向后退?
你可能想在这里阅读关于MT4回溯测试的内容:http://www.strategybuilderfx.com/forums/showthread.php?t=15309&page=1&pp=8
(如果你不能访问该页面,你需要注册成为会员 - 这是免费的)
根据我在这里和那里收集到的信息,对回测有点认真的人使用WealthLab、Amibroker或MetaStocks等软件,而不是mt3或mt4。
也许,如果你不使用任何股价内的数据,mt4的回测是可以的。例如,如果你使用日线,你应该只使用日线的开盘和收盘值(如果你设置了止损或止盈,甚至不使用高点和低点)。没有其他东西。
原因是,尽管他们的 "建模质量 "可能会说,唯一使用真实数据的mt4回测方法是"仅开盘价"。
"每点 "和 "控制点 "的方法是很好的童话故事。就个人而言,我不会根据童话般的数据回测来交易资金。
我还在学习mt4,但根据我的经验,我不会以任何其他方式使用mt4回测。我甚至不能100%确定我建议的方式是否100%可靠。如果我想做良好的回测,我会得到一个回测软件。
关于mt4与mt3的实盘交易:从我在这里和那里收集到的信息来看;-)mt4不可信。有时,mt4说没有执行的订单,实际上是被执行了!这是由经纪人报告的。这是由经纪人报告的。如果这是真的,那么提供mt4实时交易的经纪商并不认真。或者,他们确保mt4的错误没有发生在他们的平台上,这也是可能的。
另一方面,"我在这里和那里收集到的信息 "表明,用mt3进行实盘交易是可能的。
为我把这个MT3转换成MT4 - 非常容易
大家好,如果有人能帮我把这个转换为MT4语言,我将非常感激--我们的经纪人刚刚升级为MT4。
以下是代码。
/*[[
Name := TTM Stoch
Author := Scott Black
Link := http://www.tradethemajors.com
Separate Window := yes
First Color := Cyan
First Draw Type := Line
Use Second Data := yes
second Color := Magenta
second Draw Type := Line
Minimum Chart Limits := 0.000000
Maximum Chart Limits := 100.000000
]]*/
Inputs : Slw(8),Pds(13),Slwsignal(9);
Variables : AA(0),bb(0),aa1(0),cnt1(0);
Variables : shift(0), cnt(0), loopbegin(0),loopbegin2(0),loopbegin3(0), first(True), prevbars(0);
Variables : sum(0), smconst(0),smconst1(0), prev(0),prev1(0),prev2(0),prev3(0), weight(0), linear(0);
Variables : MAValue(0),MAValue2(0),mavalue3(0), MAstring("");
Variables : MyHigh(0),MyLow(0),counter(0),Price(0),Price1(0);
SetLoopCount(0);
smconst = 2 / (1+SLW);
smconst1 = 2 / (1+slwsignal);
loopbegin = loopbegin+1;
For shift = 2000 Downto 0 Begin
prev = GetIndexValue2(shift+1);
AA =100* ((Close[shift] - Low[Lowest(MODE_LOW,shift+pds,Pds)]) / (High - low[Lowest(MODE_LOW,shift+pds,Pds)]));
MAValue2 = smconst * (aa-prev) + prev;
SetIndexValue2(shift,MAValue2);
loopbegin = loopbegin-1;
End;
loopbegin2 = loopbegin2+1;
For shift = 2000-pds downto 0 Begin
MyHigh = -999999;
MyLow = 99999999;
For counter = shift to pds + shift Begin
PRICE= GetIndexValue2(counter);
If Price > MyHigh Then
MyHigh = Price;
If pds <= 0 Then
MyHigh = Price;
If Price < MyLow Then
MyLow = Price;
If pds <= 0 Then
MyLow = Price;
end;
prev1 = GetIndexValue(shift+1);
aa1=GetIndexValue2(shift);
bb=100*(aa1-mylow)/(myhigh-mylow);
MAValue = smconst * (bb-prev1) + prev1;
SetIndexValue(shift,mavalue);
loopbegin2 = loopbegin2-1;
End;
loopbegin3 = loopbegin3+1;
For shift = 2000 downto 0 Begin
prev2=GetIndexValue2(shift+1);
prev3=GetIndexValue(shift);
MAValue3= smconst1 * (prev3-prev2) +Prev2;
SetIndexValue2(shift,mavalue3);
loopbegin3 = loopbegin3-1;
end;
/*[[
非常感谢!
大家好,如果有人能把这个转换成MT4语言,我将非常感激--我们的经纪人刚刚升级到MT4。
以下是代码。
/*[[
Name := TTM Stoch
Author := Scott Black
Link := http://www.tradethemajors.com
Separate Window := yes
First Color := Cyan
First Draw Type := Line
Use Second Data := yes
second Color := Magenta
second Draw Type := Line
Minimum Chart Limits := 0.000000
Maximum Chart Limits := 100.000000
]]*/
Inputs : Slw(8),Pds(13),Slwsignal(9);
Variables : AA(0),bb(0),aa1(0),cnt1(0);
Variables : shift(0), cnt(0), loopbegin(0),loopbegin2(0),loopbegin3(0), first(True), prevbars(0);
Variables : sum(0), smconst(0),smconst1(0), prev(0),prev1(0),prev2(0),prev3(0), weight(0), linear(0);
Variables : MAValue(0),MAValue2(0),mavalue3(0), MAstring("");
Variables : MyHigh(0),MyLow(0),counter(0),Price(0),Price1(0);
SetLoopCount(0);
smconst = 2 / (1+SLW);
smconst1 = 2 / (1+slwsignal);
loopbegin = loopbegin+1;
For shift = 2000 Downto 0 Begin
prev = GetIndexValue2(shift+1);
AA =100* ((Close[shift] - Low[Lowest(MODE_LOW,shift+pds,Pds)]) / (High - low[Lowest(MODE_LOW,shift+pds,Pds)]));
MAValue2 = smconst * (aa-prev) + prev;
SetIndexValue2(shift,MAValue2);
loopbegin = loopbegin-1;
End;
loopbegin2 = loopbegin2+1;
For shift = 2000-pds downto 0 Begin
MyHigh = -999999;
MyLow = 99999999;
For counter = shift to pds + shift Begin
PRICE= GetIndexValue2(counter);
If Price > MyHigh Then
MyHigh = Price;
If pds <= 0 Then
MyHigh = Price;
If Price < MyLow Then
MyLow = Price;
If pds <= 0 Then
MyLow = Price;
end;
prev1 = GetIndexValue(shift+1);
aa1=GetIndexValue2(shift);
bb=100*(aa1-mylow)/(myhigh-mylow);
MAValue = smconst * (bb-prev1) + prev1;
SetIndexValue(shift,mavalue);
loopbegin2 = loopbegin2-1;
End;
loopbegin3 = loopbegin3+1;
For shift = 2000 downto 0 Begin
prev2=GetIndexValue2(shift+1);
prev3=GetIndexValue(shift);
MAValue3= smconst1 * (prev3-prev2) +Prev2;
SetIndexValue2(shift,mavalue3);
loopbegin3 = loopbegin3-1;
end;
/*[[
嗨,斯科特...
试试这个....
Hellkas,
恐怕这并不完全可行。 请到www.compoundfx.com/mt3stoch.jpg,看看它在MT3图表上应该是什么样子的--我试图上传这个,但没有成功。
谢谢你的努力,也许这能帮助你?
当我在MT4中绘制它时,我只看到一条洋红色的线,而不是青色的--尽管我看到输入是存在的。
斯科特
你好。
首先hellkas
在用我的工具Mql2Mq4转换mql指标后,我很感激你保留了我的文件头!!。
那么转换后的指标不能正常工作是正常的,如果你在Metatrade 4的专家信息日志TabSheet(面板)中查看,你会看到 "Zero Devide exception",就像这张图。在指标脚本中,你使用了除法运算符,有些时候是NULL:-(这就是为什么会出现这个错误,我再说一遍,在Metatrade 3中,没有产生任何异常,但在Metatrade 4中却有。
我把转换后的程序放在MT3上运行,你可以看到我做了什么改变。
再见
yousky。
非常感谢,它看起来很完美! 我很欣赏它。
-SB
yousky。
好吧,经过进一步审查,它还没有完全达到目的。 它在MT4上仍然给我错误的读数,即线条没有在它们应该的地方交叉。 我使用了你放在这里的代码。 有什么想法吗?
庄家