如何编码? - 页 308 1...301302303304305306307308309310311312313314315...347 新评论 tkuan77 2012.07.23 12:34 #3071 嗨,Mladen。 我看到了您在stochastic上做的一个代码。但是,当我把它移植到我的系统中时,什么也没有发生。我可以向你确认一下它是做什么的吗? http://www.forexmt4.com/mt_yahoo/Color%20Stochastic%20v1[ 1].04.mq4 尊敬的先生 特伦斯 Mladen Rakic 2012.07.23 12:51 #3072 ... 试试这里张贴的一些内容:https://www.mql5.com/en/forum/175297/page3 或这里 :https://www.mql5.com/en/forum/177239/page2 经过测试,它们是有效的 tkuan77: 你好,姆拉登。我遇到了一个由你在stochastic上完成的代码。但是,当我把它插入我的系统时,什么也没有发生。我可以向你检查一下它是做什么的吗? http://www.forexmt4.com/mt_yahoo/Color%20Stochastic%20v1[ 1].04.mq4 问候语 特伦斯 [删除] 2012.07.24 06:49 #3073 这很奇怪。 我更详细地研究了挂锁的问题。显然,这与我的UAC(用户账户控制)设置有关,所以我进入我的windows7控制面板,把UAC完全关闭。一旦我重新启动,我注意到挂锁已经从文件中消失了。我打开它,它与我在这个论坛上发布的文件相同。与我过去几周一直在写的代码完全不同,尽管它实际上是同一个文件。我以为我失去了我所有的编码工作。我重新打开UAC并重新启动,挂锁已经恢复,我写的代码又恢复了正常。 但后来我试图编译代码,它发现了大量的错误。但它挑出的错误不是来自这段代码,而是当我关闭UAC时完全不同的代码--我知道这是因为它挑出的变量只在其他代码中出现。 我想我需要开一个全新的EA,手动输入所有这些代码并保存。 Mladen Rakic 2012.07.24 07:40 #3074 ... 这是在windows7下的一个常见的问题(有保护)。 在windows7下,避免这种情况的最简单方法是将metatrader安装在不同于C的分区上,你就不会有这种问题了。 crsnape@btinternet.com: 这很奇怪。 我更详细地研究了挂锁的问题。显然,这与我的UAC(用户账户控制)设置有关,所以我进入我的windows7控制面板,将UAC完全关闭。一旦我重新启动,我注意到挂锁已经从文件中消失了。我打开它,它与我在这个论坛上发布的文件相同。与我过去几周一直在写的代码完全不同,尽管它实际上是同一个文件。我以为我失去了我所有的编码工作。我重新打开UAC并重新启动,挂锁已经恢复,我写的代码又恢复了正常。 但后来我试图编译代码,它发现了大量的错误。但它挑出的错误不是来自这段代码,而是当我关闭UAC时完全不同的代码--我知道这是因为它挑出的变量只在其他代码中出现。 我想我需要开一个全新的EA,手动输入所有这些代码并保存。 [删除] 2012.07.25 05:55 #3075 我终于实现了一个适当的工作EA。我最后把我的代码复制到记事本上,关掉UAC,然后把它粘贴到一个新的EA文件中。我知道了为什么我的函数会出现问题--我把一个int变量放在一个normalizeddouble里面。我不知道我不能这样做,但现在我知道了--我只花了一个星期的时间来解决这个问题!:/ 总之,我写了这个。 if (VariableRisk == true) Risk = GetRiskShort (LastOpenTicket, RiskShort); 如果(VariableRisk == false)Risk = StaticRisk。 我想知道它是否可以像这样缩短? 如果(VariableRisk == true) { Risk = GetRiskShort (LastOpenTicket, RiskShort); 否则Risk = StaticRisk。 } 我还写了这个。 //---- 当做多时计算获利 位置的函数 double GetTPPriceLong (double SLPriceLong, int RiskRewardRatio, int StaticTP, bool AutoCalcTakeProfit) { double TPPriceLong = 0; 如果(AutoCalcTakeProfit == true) { RefreshRates()。 TPPriceLong = OrderOpenPrice() + ((OrderOpenPrice() - SLPriceLong)* RiskRewardRatio)。 Print("获利头寸计算成功")。 返回(TPPriceLong)。 } 如果(AutoCalcTakeProfit == false) { RefreshRates()。 TPPriceLong = OrderOpenPrice() + (StaticTP * 0.0001); Print("静态获利头寸计算成功")。 返回(TPPriceLong)。 } } 我想知道是否可以像这样缩短? //---计算多头时的获利头寸的函数 double GetTPPriceLong (double SLPriceLong, int RiskRewardRatio, int StaticTP, bool AutoCalcTakeProfit) { double TPPriceLong = 0; RefreshRates()。 如果(AutoCalcTakeProfit == true) { TPPriceLong = OrderOpenPrice() + ((OrderOpenPrice() - SLPriceLong)* RiskRewardRatio)。 Print("获利头寸计算成功")。 否则 TPPriceLong = OrderOpenPrice() + (StaticTP * 0.0001); Print("静态获利头寸计算成功")。 返回(TPPriceLong)。 } 最后一个问题,为了给我的EA提供更多的灵活性,我想把我的时间框架定义为外部变量。例如,我的信号图是D1,而我的触发图是H4。所以在外部变量下,我可以这样做。 extern int SignalChart = PERIOD_D1; 外置int TriggerChart = PERIOD_H4; 然后通过这样的方式来引用它,例如。 SlowMACurrent = iMA(Symbol(), SignalChart, SlowMAPeriod, 0, MODE_SMA, PRICE_CLOSE, 1)。 How to code? Ema Cross! 10点3.mq4 Mladen Rakic 2012.07.25 07:18 #3076 关于这部分: 然后通过这样的例子来引用它: SlowMACurrent = iMA(Symbol(), SignalChart, SlowMAPeriod, 0, MODE_SMA, PRICE_CLOSE, 1)。 是的,这是一个100%正确的使用方法(甚至可以说你使用的是一个封闭的条形图(在该例子中shift被设置为1),通过在测试中使用一个封闭的条形图,你将避免在多时间框架中使用开放条形图的通常陷阱) crsnape@btinternet.com。 我终于实现了一个适当的工作EA。我最后把我的代码复制到记事本上,关掉UAC,然后把它粘贴到一个新的EA文件。我知道了为什么我的函数会出现问题--我把一个int变量放在一个normalizeddouble里面。我不知道我不能这样做,但现在我知道了--我只花了一个星期的时间来解决这个问题!:/总之,我已经写了这个 if (VariableRisk == true) Risk = GetRiskShort (LastOpenTicket, RiskShort); 如果(VariableRisk == false) Risk = StaticRisk; 我想知道它是否可以像这样缩短? 如果(VariableRisk == true) { Risk = GetRiskShort (LastOpenTicket, RiskShort); 否则Risk = StaticRisk。 } 我还写了这个。 //---- 当做多时计算获利位置的函数 double GetTPPriceLong (double SLPriceLong, int RiskRewardRatio, int StaticTP, bool AutoCalcTakeProfit) { double TPPriceLong = 0; 如果(AutoCalcTakeProfit == true) { RefreshRates()。 TPPriceLong = OrderOpenPrice() + ((OrderOpenPrice() - SLPriceLong)* RiskRewardRatio)。 Print("获利头寸计算成功")。 返回(TPPriceLong)。 } 如果(AutoCalcTakeProfit == false) { RefreshRates()。 TPPriceLong = OrderOpenPrice() + (StaticTP * 0.0001); Print("静态获利头寸计算成功")。 返回(TPPriceLong)。 } } 我想知道是否可以像这样缩短? //---计算多头时的获利头寸的函数 double GetTPPriceLong (double SLPriceLong, int RiskRewardRatio, int StaticTP, bool AutoCalcTakeProfit) { double TPPriceLong = 0; RefreshRates()。 如果(AutoCalcTakeProfit == true) { TPPriceLong = OrderOpenPrice() + ((OrderOpenPrice() - SLPriceLong)* RiskRewardRatio)。 Print("获利头寸计算成功")。 否则 TPPriceLong = OrderOpenPrice() + (StaticTP * 0.0001); Print("静态获利头寸计算成功")。 返回(TPPriceLong)。 } 最后一个问题,为了给我的EA提供更多的灵活性,我想把我的时间框架定义为外部变量。例如,我的信号图是D1,而我的触发图是H4。所以在外部变量下,我可以这样做。 extern int SignalChart = PERIOD_D1; 外置int TriggerChart = PERIOD_H4; 然后通过这样的方式来引用它,例如。 SlowMACurrent = iMA(Symbol(), SignalChart, SlowMAPeriod, 0, MODE_SMA, PRICE_CLOSE, 1); [删除] 2012.07.25 17:40 #3077 你好,我得到错误代码 4059。 err_func_not_allowed_in_testing[/td] 4059[TD]功能在测试模式中不允许。 我做了一个搜索,但没有找到任何关于它的意思的信息? joelnelson 2012.07.25 19:57 #3078 你能帮助将以下代码添加到这个抛物线沙尔指标中吗? Pip: 谢谢Mladen。我将重新阅读你的帖子来理解,说实话,我读起来有点迷茫,但这很可能是我的无知在作祟。 如果我有任何问题,我将发布问题。 谢谢你,伙计。 谢谢。 皮普 亲爱的朋友。 你能帮我在这个抛物线警报parabolic_alert_mod.mq4INDICATOR 上添加以下代码吗? 我不是要找一个EA。如果可能的话,至少要把SHIFT选项加到指标中。 extern double TakeProfit = 50; 外部双数 Lots = 0.1; extern double TrailingStop = 30; 外部双SAR_Step = 0.02; 外部双SAR_Maximum = 0.2; extern double Shift=1; 附加的文件: parabolic_alert_mod.mq4 9 kb Mladen Rakic 2012.07.26 04:40 #3079 ... joelnelson TakeProfit、Lots和TrailingStop与抛物线的计算方式无关(这些参数显然是从使用抛物线的EA的工作中提取的)。所以,如果你不是在寻找一个EA,就不可能以有意义的方式添加这些参数。 另外,参数中的移动是指被测试的条形图(抛物线SAR不移动,因为移动平均线通常可以移动),这些参数可能是为了调用一个内置的SAR,内置的SAR有以下形式 double iSAR([/TD] [TD]string symbol,int timeframe,double step,double maximum,int shift) 在这种情况下,移位1是为了测试抛物线沙尔的第一个闭合条的值。 joelnelson: 亲爱的朋友。您能帮助将以下代码添加到这个抛物线SAR警报parabolic_alert_mod.mq4INDICATOR 吗? 我不是在寻找一个EA。如果可能的话,至少要把SHIFT选项加到指标中。 extern double TakeProfit = 50; 外部双数 Lots = 0.1; extern double TrailingStop = 30; 外部双SAR_Step = 0.02; 外部双SAR_Maximum = 0.2。 外置双Shift=1。 Mladen Rakic 2012.07.26 05:23 #3080 ... 这个错误可以由一些函数返回。 在测试中可能导致该错误的函数有以下几个。 市场信息消息框 发送FTP 发送邮件 WindowIsVisible 查找窗口 WindowHandle 因此,对上述一些函数的调用引起了该错误 crsnape@btinternet.com: 嗨,我得到了错误代码4059。 ERR_FUNC_NOT_ALLOWED_IN_TESTING[/TD]4059[TD]函数在测试模式下不允许。 我做了一个搜索,但找不到任何关于它的意思的更多信息? 1...301302303304305306307308309310311312313314315...347 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
嗨,Mladen。
我看到了您在stochastic上做的一个代码。但是,当我把它移植到我的系统中时,什么也没有发生。我可以向你确认一下它是做什么的吗?
http://www.forexmt4.com/mt_yahoo/Color%20Stochastic%20v1[ 1].04.mq4
尊敬的先生
特伦斯
...
试试这里张贴的一些内容:https://www.mql5.com/en/forum/175297/page3
或这里 :https://www.mql5.com/en/forum/177239/page2
经过测试,它们是有效的
你好,姆拉登。
我遇到了一个由你在stochastic上完成的代码。但是,当我把它插入我的系统时,什么也没有发生。我可以向你检查一下它是做什么的吗?
http://www.forexmt4.com/mt_yahoo/Color%20Stochastic%20v1[ 1].04.mq4
问候语
特伦斯这很奇怪。
我更详细地研究了挂锁的问题。显然,这与我的UAC(用户账户控制)设置有关,所以我进入我的windows7控制面板,把UAC完全关闭。一旦我重新启动,我注意到挂锁已经从文件中消失了。我打开它,它与我在这个论坛上发布的文件相同。与我过去几周一直在写的代码完全不同,尽管它实际上是同一个文件。我以为我失去了我所有的编码工作。我重新打开UAC并重新启动,挂锁已经恢复,我写的代码又恢复了正常。
但后来我试图编译代码,它发现了大量的错误。但它挑出的错误不是来自这段代码,而是当我关闭UAC时完全不同的代码--我知道这是因为它挑出的变量只在其他代码中出现。
我想我需要开一个全新的EA,手动输入所有这些代码并保存。
...
这是在windows7下的一个常见的问题(有保护)。
在windows7下,避免这种情况的最简单方法是将metatrader安装在不同于C的分区上,你就不会有这种问题了。
这很奇怪。
我更详细地研究了挂锁的问题。显然,这与我的UAC(用户账户控制)设置有关,所以我进入我的windows7控制面板,将UAC完全关闭。一旦我重新启动,我注意到挂锁已经从文件中消失了。我打开它,它与我在这个论坛上发布的文件相同。与我过去几周一直在写的代码完全不同,尽管它实际上是同一个文件。我以为我失去了我所有的编码工作。我重新打开UAC并重新启动,挂锁已经恢复,我写的代码又恢复了正常。
但后来我试图编译代码,它发现了大量的错误。但它挑出的错误不是来自这段代码,而是当我关闭UAC时完全不同的代码--我知道这是因为它挑出的变量只在其他代码中出现。
我想我需要开一个全新的EA,手动输入所有这些代码并保存。我终于实现了一个适当的工作EA。我最后把我的代码复制到记事本上,关掉UAC,然后把它粘贴到一个新的EA文件中。我知道了为什么我的函数会出现问题--我把一个int变量放在一个normalizeddouble里面。我不知道我不能这样做,但现在我知道了--我只花了一个星期的时间来解决这个问题!:/
总之,我写了这个。
if (VariableRisk == true) Risk = GetRiskShort (LastOpenTicket, RiskShort);
如果(VariableRisk == false)Risk = StaticRisk。
我想知道它是否可以像这样缩短?
如果(VariableRisk == true)
{
Risk = GetRiskShort (LastOpenTicket, RiskShort);
否则Risk = StaticRisk。
}
我还写了这个。
//---- 当做多时计算获利 位置的函数
double GetTPPriceLong (double SLPriceLong, int RiskRewardRatio, int StaticTP, bool AutoCalcTakeProfit)
{
double TPPriceLong = 0;
如果(AutoCalcTakeProfit == true)
{
RefreshRates()。
TPPriceLong = OrderOpenPrice() + ((OrderOpenPrice() - SLPriceLong)* RiskRewardRatio)。
Print("获利头寸计算成功")。
返回(TPPriceLong)。
}
如果(AutoCalcTakeProfit == false)
{
RefreshRates()。
TPPriceLong = OrderOpenPrice() + (StaticTP * 0.0001);
Print("静态获利头寸计算成功")。
返回(TPPriceLong)。
}
}
我想知道是否可以像这样缩短?
//---计算多头时的获利头寸的函数
double GetTPPriceLong (double SLPriceLong, int RiskRewardRatio, int StaticTP, bool AutoCalcTakeProfit)
{
double TPPriceLong = 0;
RefreshRates()。
如果(AutoCalcTakeProfit == true)
{
TPPriceLong = OrderOpenPrice() + ((OrderOpenPrice() - SLPriceLong)* RiskRewardRatio)。
Print("获利头寸计算成功")。
否则 TPPriceLong = OrderOpenPrice() + (StaticTP * 0.0001);
Print("静态获利头寸计算成功")。
返回(TPPriceLong)。
}
最后一个问题,为了给我的EA提供更多的灵活性,我想把我的时间框架定义为外部变量。例如,我的信号图是D1,而我的触发图是H4。所以在外部变量下,我可以这样做。
extern int SignalChart = PERIOD_D1;
外置int TriggerChart = PERIOD_H4;
然后通过这样的方式来引用它,例如。
SlowMACurrent = iMA(Symbol(), SignalChart, SlowMAPeriod, 0, MODE_SMA, PRICE_CLOSE, 1)。
关于这部分:
是的,这是一个100%正确的使用方法(甚至可以说你使用的是一个封闭的条形图(在该例子中shift被设置为1),通过在测试中使用一个封闭的条形图,你将避免在多时间框架中使用开放条形图的通常陷阱)
我终于实现了一个适当的工作EA。我最后把我的代码复制到记事本上,关掉UAC,然后把它粘贴到一个新的EA文件。我知道了为什么我的函数会出现问题--我把一个int变量放在一个normalizeddouble里面。我不知道我不能这样做,但现在我知道了--我只花了一个星期的时间来解决这个问题!:/
总之,我已经写了这个
if (VariableRisk == true) Risk = GetRiskShort (LastOpenTicket, RiskShort);
如果(VariableRisk == false) Risk = StaticRisk;
我想知道它是否可以像这样缩短?
如果(VariableRisk == true)
{
Risk = GetRiskShort (LastOpenTicket, RiskShort);
否则Risk = StaticRisk。
}
我还写了这个。
//---- 当做多时计算获利位置的函数
double GetTPPriceLong (double SLPriceLong, int RiskRewardRatio, int StaticTP, bool AutoCalcTakeProfit)
{
double TPPriceLong = 0;
如果(AutoCalcTakeProfit == true)
{
RefreshRates()。
TPPriceLong = OrderOpenPrice() + ((OrderOpenPrice() - SLPriceLong)* RiskRewardRatio)。
Print("获利头寸计算成功")。
返回(TPPriceLong)。
}
如果(AutoCalcTakeProfit == false)
{
RefreshRates()。
TPPriceLong = OrderOpenPrice() + (StaticTP * 0.0001);
Print("静态获利头寸计算成功")。
返回(TPPriceLong)。
}
}
我想知道是否可以像这样缩短?
//---计算多头时的获利头寸的函数
double GetTPPriceLong (double SLPriceLong, int RiskRewardRatio, int StaticTP, bool AutoCalcTakeProfit)
{
double TPPriceLong = 0;
RefreshRates()。
如果(AutoCalcTakeProfit == true)
{
TPPriceLong = OrderOpenPrice() + ((OrderOpenPrice() - SLPriceLong)* RiskRewardRatio)。
Print("获利头寸计算成功")。
否则 TPPriceLong = OrderOpenPrice() + (StaticTP * 0.0001);
Print("静态获利头寸计算成功")。
返回(TPPriceLong)。
}
最后一个问题,为了给我的EA提供更多的灵活性,我想把我的时间框架定义为外部变量。例如,我的信号图是D1,而我的触发图是H4。所以在外部变量下,我可以这样做。
extern int SignalChart = PERIOD_D1;
外置int TriggerChart = PERIOD_H4;
然后通过这样的方式来引用它,例如。
SlowMACurrent = iMA(Symbol(), SignalChart, SlowMAPeriod, 0, MODE_SMA, PRICE_CLOSE, 1);你好,我得到错误代码 4059。
err_func_not_allowed_in_testing[/td]
我做了一个搜索,但没有找到任何关于它的意思的信息?
你能帮助将以下代码添加到这个抛物线沙尔指标中吗?
谢谢Mladen。
我将重新阅读你的帖子来理解,说实话,我读起来有点迷茫,但这很可能是我的无知在作祟。 如果我有任何问题,我将发布问题。
谢谢你,伙计。
谢谢。
皮普亲爱的朋友。
你能帮我在这个抛物线警报parabolic_alert_mod.mq4INDICATOR 上添加以下代码吗?
我不是要找一个EA。如果可能的话,至少要把SHIFT选项加到指标中。
extern double TakeProfit = 50;
外部双数 Lots = 0.1;
extern double TrailingStop = 30;
外部双SAR_Step = 0.02;
外部双SAR_Maximum = 0.2;
extern double Shift=1;
...
joelnelson
TakeProfit、Lots和TrailingStop与抛物线的计算方式无关(这些参数显然是从使用抛物线的EA的工作中提取的)。所以,如果你不是在寻找一个EA,就不可能以有意义的方式添加这些参数。
另外,参数中的移动是指被测试的条形图(抛物线SAR不移动,因为移动平均线通常可以移动),这些参数可能是为了调用一个内置的SAR,内置的SAR有以下形式
在这种情况下,移位1是为了测试抛物线沙尔的第一个闭合条的值。
亲爱的朋友。
您能帮助将以下代码添加到这个抛物线SAR警报parabolic_alert_mod.mq4INDICATOR 吗?
我不是在寻找一个EA。如果可能的话,至少要把SHIFT选项加到指标中。
extern double TakeProfit = 50;
外部双数 Lots = 0.1;
extern double TrailingStop = 30;
外部双SAR_Step = 0.02;
外部双SAR_Maximum = 0.2。
外置双Shift=1。...
这个错误可以由一些函数返回。
在测试中可能导致该错误的函数有以下几个。
因此,对上述一些函数的调用引起了该错误
嗨,我得到了错误代码4059。