编码帮助 - 页 350 1...343344345346347348349350351352353354355356357...786 新评论 Mladen Rakic 2014.09.19 20:29 #3491 apprentice coder: 我如何从代码中测试与经纪商的连接是打开还是关闭? 你可以使用IsConnected() 函数,但 ... 如果没有新的点数进入,该函数将永远不会被达到。 因此,你必须让它处于无休止的循环中(这对EA来说是不可接受的),或者你必须使用定时器事件来检查(在这种情况下,如果它是EA,它可以警告你没有连接。我想我们都认为指标对连接的要求不高--没有订单等操作--所以定时器解决方案也可以适用于指标,但从那里检查可能不如从EA检查来得重要)。否则你的代码将不知道连接已经丢失。 learning 2014.09.19 20:41 #3492 mladen: 你可以使用IsConnected() 函数,但...如果没有新的刻度线进入,该函数将永远不会被达到。 所以,你必须保持无休止的循环(这对EA来说是不可接受的),或者你必须使用定时器事件来检查(在这种情况下,如果它是一个EA,它可以警告你没有连接。我想我们都认为指标对连接的要求不高--没有订单等操作--所以定时器解决方案也可以适用于指标,但从那里检查可能不如从EA检查来得重要)。否则你的代码将不知道连接已经丢失。 你能贴出一些能做到这一点的代码例子吗? Mladen Rakic 2014.09.19 21:41 #3493 apprentice coder: 你能贴出一些能做到这一点的代码例子吗,谢谢? 明天将发布一个例子。好吗? learning 2014.09.19 22:14 #3494 mladen: 明天将发布一个例子。好吗? 好的。让我们休息一下吧 Mladen Rakic 2014.09.20 07:59 #3495 apprentice coder: 你能贴出一些能做到这一点的代码例子吗? 编码学徒 这里有一个简单的指标(但它的使用方式,你可以在EA中做得完全一样),它在所需的时间间隔内检查经纪人的连接状态:_check_connection.mq4 #property indicator_chart_window extern int CheckStatusEveryNMilliseconds = 250; int init() { EventSetMillisecondTimer(CheckStatusEveryNMilliseconds); return(0); } int deinit() { EventKillTimer(); return(0); } int start() { return(0); } void OnTimer() { static bool previouslyConnected = true; bool currentlyConnected = IsConnected(); if (previouslyConnected != currentlyConnected) { previouslyConnected = currentlyConnected; string cdescription = "disconnected"; if (currentlyConnected) cdescription = "connected"; Comment("connection status changed.\nterminal is now : "+cdescription); } 正如你所看到的,这只是一个简单的例子,如何做到这一点? 附加的文件: _check_connection.mq4 1 kb Coding help Metatrader known bugs ... [Archive!] Any rookie question, learning 2014.09.20 09:08 #3496 mladen: 编码学徒这里有一个简单的指标(但它的使用方式,你可以在EA中做得完全一样),在所需的时间间隔内检查经纪人的连接状态:_check_connection.mq4 #property indicator_chart_window extern int CheckStatusEveryNMilliseconds = 250; int init() { EventSetMillisecondTimer(CheckStatusEveryNMilliseconds); return(0); } int deinit() { EventKillTimer(); return(0); } int start() { return(0); } void OnTimer() { static bool previouslyConnected = true; bool currentlyConnected = IsConnected(); if (previouslyConnected != currentlyConnected) { previouslyConnected = currentlyConnected; string cdescription = "disconnected"; if (currentlyConnected) cdescription = "connected"; Comment("connection status changed.\nterminal is now : "+cdescription); } 正如你所看到的,这是一个简单的例子,它可以做到的。 谢谢:0 我看到它今天还能工作(没有刻度)。 [删除] 2014.09.20 14:27 #3497 mladen: 改变fxpreislevelsv5.ex4或fxpreislevelsv5.dll的名称(metatrader在这种情况下不承认扩展名--无论扩展名是什么,你都必须有不同的文件名)。 谢谢你的帮助!! 但我遇到了一个不同的问题,在编译后,没有错误,但它不运行,并一直在删除 "2014.09.20 19:56:40.262 Custom indicator Trend_Imperator_V2e GBPUSDe,M5: remove 2014.09.20 19:56:38.901 自定义指标Trend_Imperator_V2e GBPUSDe,M5:加载成功" 总是发生我必须更新代码吗? Mladen Rakic 2014.09.20 15:22 #3498 forexeaexpert: 谢谢你的帮助!! 但我遇到了一个不同的问题,在编译后,没有错误,但它不运行,并一直在删除"2014.09.20 19:56:40.262 Custom indicator Trend_Imperator_V2e GBPUSDe,M5: remove2014.09.20 19:56:38.901自定义指标Trend_Imperator_V2e GBPUSDe,M5:加载成功" 总是发生这种情况,我必须更新代码吗? 外汇专家 该错误通常发生在调用指标时参数 错误的情况下 检查该指标的iCustom()调用中的参数。 FxSteven 2014.09.20 18:56 #3499 你好 mladen , 我试图在我的EA中插入这个指标。 但经过测试,它只得到一个购买信号。 请帮我看看,我插入的代码是否正确。 MACD = iCustom(NULL,0,"MACD_ColorHist_Alert_EMA 2",FastEMA,SlowEMA,SignalEMA,true,true,true,false,false,false,false,false,false,false,false,0); 我知道macd>0和macd<0是跨越 零线的信号。 但我怎样才能从斜率方向得到另一个信号? 我非常困惑,在尝试了这么多次之后 附加的文件: macd_colorhist_alert_ema_2.mq4 12 kb untitled.jpg 218 kb Mladen Rakic 2014.09.20 19:07 #3500 stevenpun: 你好,mladen。我试图在我的EA中插入这个指标。但经过测试,它只得到一个购买信号。请帮我看看,我插入的代码是否正确。MACD = iCustom(NULL,0,"MACD_ColorHist_Alert_EMA 2",FastEMA,SlowEMA,SignalEMA,true,true,true,false,false,false,false,false,false,false,false,0);我知道macd>0和macd<0是跨越零线的信号。但我怎样才能从斜率方向得到另一个信号? 我非常困惑,在尝试了这么多次后, 。 stevenpun 对于这一点,最简单的方法是在该指标上添加一些 "斜率方向 "的缓冲区,或者使用一些已经在缓冲区中解决了斜率问题的其他MACD。 1...343344345346347348349350351352353354355356357...786 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我如何从代码中测试与经纪商的连接是打开还是关闭?
你可以使用IsConnected() 函数,但 ...
如果没有新的点数进入,该函数将永远不会被达到。
因此,你必须让它处于无休止的循环中(这对EA来说是不可接受的),或者你必须使用定时器事件来检查(在这种情况下,如果它是EA,它可以警告你没有连接。我想我们都认为指标对连接的要求不高--没有订单等操作--所以定时器解决方案也可以适用于指标,但从那里检查可能不如从EA检查来得重要)。否则你的代码将不知道连接已经丢失。
你可以使用IsConnected() 函数,但...
如果没有新的刻度线进入,该函数将永远不会被达到。
所以,你必须保持无休止的循环(这对EA来说是不可接受的),或者你必须使用定时器事件来检查(在这种情况下,如果它是一个EA,它可以警告你没有连接。我想我们都认为指标对连接的要求不高--没有订单等操作--所以定时器解决方案也可以适用于指标,但从那里检查可能不如从EA检查来得重要)。否则你的代码将不知道连接已经丢失。你能贴出一些能做到这一点的代码例子吗?
你能贴出一些能做到这一点的代码例子吗,谢谢?
明天将发布一个例子。好吗?
明天将发布一个例子。好吗?
好的。让我们休息一下吧
你能贴出一些能做到这一点的代码例子吗?
编码学徒
这里有一个简单的指标(但它的使用方式,你可以在EA中做得完全一样),它在所需的时间间隔内检查经纪人的连接状态:_check_connection.mq4
extern int CheckStatusEveryNMilliseconds = 250;
int init() { EventSetMillisecondTimer(CheckStatusEveryNMilliseconds); return(0); }
int deinit() { EventKillTimer(); return(0); }
int start() { return(0); }
void OnTimer()
{
static bool previouslyConnected = true;
bool currentlyConnected = IsConnected();
if (previouslyConnected != currentlyConnected)
{
previouslyConnected = currentlyConnected;
string cdescription = "disconnected"; if (currentlyConnected) cdescription = "connected";
Comment("connection status changed.\nterminal is now : "+cdescription);
}
正如你所看到的,这只是一个简单的例子,如何做到这一点?
编码学徒
这里有一个简单的指标(但它的使用方式,你可以在EA中做得完全一样),在所需的时间间隔内检查经纪人的连接状态:_check_connection.mq4
extern int CheckStatusEveryNMilliseconds = 250;
int init() { EventSetMillisecondTimer(CheckStatusEveryNMilliseconds); return(0); }
int deinit() { EventKillTimer(); return(0); }
int start() { return(0); }
void OnTimer()
{
static bool previouslyConnected = true;
bool currentlyConnected = IsConnected();
if (previouslyConnected != currentlyConnected)
{
previouslyConnected = currentlyConnected;
string cdescription = "disconnected"; if (currentlyConnected) cdescription = "connected";
Comment("connection status changed.\nterminal is now : "+cdescription);
}
谢谢:0
我看到它今天还能工作(没有刻度)。
改变fxpreislevelsv5.ex4或fxpreislevelsv5.dll的名称(metatrader在这种情况下不承认扩展名--无论扩展名是什么,你都必须有不同的文件名)。
谢谢你的帮助!!
但我遇到了一个不同的问题,在编译后,没有错误,但它不运行,并一直在删除
"2014.09.20 19:56:40.262 Custom indicator Trend_Imperator_V2e GBPUSDe,M5: remove
2014.09.20 19:56:38.901 自定义指标Trend_Imperator_V2e GBPUSDe,M5:加载成功"
总是发生我必须更新代码吗?
谢谢你的帮助!!
但我遇到了一个不同的问题,在编译后,没有错误,但它不运行,并一直在删除
"2014.09.20 19:56:40.262 Custom indicator Trend_Imperator_V2e GBPUSDe,M5: remove
2014.09.20 19:56:38.901自定义指标Trend_Imperator_V2e GBPUSDe,M5:加载成功"
总是发生这种情况,我必须更新代码吗?外汇专家
该错误通常发生在调用指标时参数 错误的情况下
检查该指标的iCustom()调用中的参数。
你好 mladen ,
我试图在我的EA中插入这个指标。
但经过测试,它只得到一个购买信号。
请帮我看看,我插入的代码是否正确。
我知道macd>0和macd<0是跨越 零线的信号。
但我怎样才能从斜率方向得到另一个信号?
我非常困惑,在尝试了这么多次之后
你好,mladen。
我试图在我的EA中插入这个指标。
但经过测试,它只得到一个购买信号。
请帮我看看,我插入的代码是否正确。
我知道macd>0和macd<0是跨越零线的信号。
但我怎样才能从斜率方向得到另一个信号?
我非常困惑,在尝试了这么多次后,stevenpun
对于这一点,最简单的方法是在该指标上添加一些 "斜率方向 "的缓冲区,或者使用一些已经在缓冲区中解决了斜率问题的其他MACD。