编码帮助 - 页 389 1...382383384385386387388389390391392393394395396...786 新评论 Triip 2014.11.06 13:15 #3881 triip: 我已经找到了很好的剥头皮系统和模板,但在安装这个系统后,它运行得很慢。也许有人能看一下,检测一下是什么原因造成的。 模板和指标。 1m_alf_scalp.zip 看起来蜡烛颜色指标(IT_Candles)是问题所在。谁能理解那段代码有什么问题,导致MT4运行缓慢? //+------------------------------------------------------------------+//| IT_Candles.mq4 //+------------------------------------------------------------------+ #property indicator_chart_window #include #property indicator_buffers 2 extern color UpColor = LimeGreen; extern color DnColor = Red; extern int Width = 5; extern double alpha = 0.09; double ev=EMPTY_VALUE,Trend,Trigger,ALF; double Up[]; double Dn[]; int init() { IndicatorBuffers(2); SetIndexStyle(0,DRAW_HISTOGRAM,0,Width,UpColor); SetIndexBuffer(0,Up); SetIndexStyle(1,DRAW_HISTOGRAM,0,Width,DnColor); SetIndexBuffer(1,Dn); return(0); } int deinit() { return(0); } int start() { int counted_bars=IndicatorCounted(); if(counted_bars<0) return(-1); //---- check for possible errors if(counted_bars>0) counted_bars--; //---- last counted bar will be recounted int limit = Bars-counted_bars; for (int i=limit;i>=0;i--) { Up = ev; Dn = ev; Trend = iCustom(NULL,0,"Instant_Trendline",alpha,0,i); Trigger = iCustom(NULL,0,"Instant_Trendline",alpha,1,i); ALF = iCustom(NULL,0,"ALF",0,i+1); if (Trigger > Trend && Close > Open && Close > ALF) { Up = MathMax(Open,Close); Dn = MathMin(Open,Close); } if (Trigger < Trend && Close < Open && Close < ALF) { Dn = MathMax(Open,Close); Up = MathMin(Open,Close); } } } Coding help 趋势指标 Trend indicators Mladen Rakic 2014.11.06 13:44 #3882 triip: 看起来蜡烛颜色指标(IT_Candles)是问题所在。有谁知道那段代码有什么问题,导致MT4运行缓慢?//+------------------------------------------------------------------+//| IT_Candles.mq4 //+------------------------------------------------------------------+ #property indicator_chart_window #include #property indicator_buffers 2 extern color UpColor = LimeGreen; extern color DnColor = Red; extern int Width = 5; extern double alpha = 0.09; double ev=EMPTY_VALUE,Trend,Trigger,ALF; double Up[]; double Dn[]; int init() { IndicatorBuffers(2); SetIndexStyle(0,DRAW_HISTOGRAM,0,Width,UpColor); SetIndexBuffer(0,Up); SetIndexStyle(1,DRAW_HISTOGRAM,0,Width,DnColor); SetIndexBuffer(1,Dn); return(0); } int deinit() { return(0); } int start() { int counted_bars=IndicatorCounted(); if(counted_bars<0) return(-1); //---- check for possible errors if(counted_bars>0) counted_bars--; //---- last counted bar will be recounted int limit = Bars-counted_bars; for (int i=limit;i>=0;i--) { Up = ev; Dn = ev; Trend = iCustom(NULL,0,"Instant_Trendline",alpha,0,i); Trigger = iCustom(NULL,0,"Instant_Trendline",alpha,1,i); ALF = iCustom(NULL,0,"ALF",0,i+1); if (Trigger > Trend && Close > Open && Close > ALF) { Up = MathMax(Open,Close); Dn = MathMin(Open,Close); } if (Trigger < Trend && Close < Open && Close < ALF) { Dn = MathMax(Open,Close); Up = MathMin(Open,Close); } } } triip 检查 你的指标文件夹中是否也有 "Instant_Trendline "和 "ALF "指标(这两个指标都是该指标正常工作所需的)。如果你没有这两个指标,从那个压缩包中提取ex4文件,该指标就可以正常工作了(如果你没有这两个指标,它将会非常慢)。 附加的文件: it.gif 75 kb Triip 2014.11.06 13:49 #3883 mladen: triip 检查你的指标文件夹中是否有 "Instant_Trendline "和 "ALF "指标(该指标需要这两个指标才能正确工作)。如果你没有这两个指标,从那个压缩包中提取ex4文件,指标就可以正常工作了(如果你没有这两个指标,就会很慢)。 是的,我也把其他指标放在图表上,但我一加入IT_Candles,MT4就变慢了,特别是切换时间段变慢。 Mladen Rakic 2014.11.06 13:53 #3884 triip: 是的,我也把其他指标放在图表上,但我一加入IT_Candles,MT4就变慢了,特别是切换时间段变慢了。 triip 它们不需要出现在图表上。但它们必须存在于指标文件夹中(使用这些确切的名称)。检查 的最简单方法是进入终端的专家选项卡,看看那里是否有一些错误(就像图片上的那个)。 附加的文件: error_2.gif 98 kb Triip 2014.11.06 14:58 #3885 mladen: triip 它们不需要出现在图表上。但它们必须存在于指标文件夹中(使用这些确切的名称)。最简单的检查方法是进入终端的专家选项卡,看看那里是否有一些错误(就像图片上的那个)。 那里没有错误。 但我注意到,ALF.ex4的速度并不慢,但ALF-MTF.ex4却完全变慢了。我在指标文件夹里有一个子文件夹,所有这些提到的指标都放在那里。也许我应该重新安装干净的MT4。 附加的文件: errors.png 27 kb Mladen Rakic 2014.11.06 15:07 #3886 triip: 那里没有错误。但我注意到,ALF.ex4的速度并不慢,但ALF-MTF.ex4却完全变慢了。我在指标文件夹里有一个子文件夹,里面存放着所有这些提到的指标。也许我应该重新安装干净的MT4。 把它们从子文件夹移到主指标文件夹,然后试试 Triip 2014.11.06 15:14 #3887 mladen: 把它们从子文件夹中移到主指标文件夹中,然后试一下 好多了,工作得很顺利 谢谢你mladen! Mladen Rakic 2014.11.06 17:31 #3888 sunshineh: 你好。我在图表中的条形图上书写文本对象时总是遇到问题。 比如说 ObjectCreate ("Xh", OBJ_TEXT,0,Time[0],High[0]+1*pips2dbl); ObjectSetText("Xh","1",10,"Tahoma",Orange); ObjectCreate ("X", OBJ_TEXT,0,Time[0],Low[0]-1*pips2dbl); ObjectSetText("Xl","1",10,"Tahoma",Orange); 在我的条形图下面的文本对象工作得很好,因为我的字体对象被固定在我的文本的 "头部 "上。 但是,如果我想在条形图上面写一些文字,我现在不知道我的字体大小为10的文字是怎样的,所以它被写进了条形图。 当我在更大的时间段写文本时也有问题,例如 "H1"、"D1 "或 "W1",因为我不得不改变我的字体距离为高或低值。 我知道我可以将我的文本旋转90°,但我不想这么做。 那么你知道解决这个问题的方法吗? 首先尝试使用ATR而不是1*pips2dbl(这样它就会根据不同的时间框架和符号进行自我调整)。 还可以尝试将文本的锚点(OBJPROP_ANCHOR)调整为ANCHOR_LOWER,以显示在高点之上的文本对象。 Mladen Rakic 2014.11.06 19:21 #3889 madopter: 可调整的部分应该是手数,以及手数所适用的账户余额。例如,参数可能是A=0.01,B=5000美元,或者,A=1.00,B=10000美元。 在这种情况下,你必须有多个可用于比较的参数值 你可以这样定义参数:extern double accountBalanceA = 5000; 然后在没有参数的情况下,使用这些参数进行比较。 jbozman 2014.11.07 07:24 #3890 mladen: jbozmanmacd指标不需要任何改变(在99.99%的情况下,它只计算1或2个柱子)。 hilo指标以一种非常复杂的方式寻找数值。最好使用一些其他的指标,以更简单的方式完成这项任务(没必要把它弄得这么复杂)。 嗨,mladen。我搜索了一下,没有找到一个集前一天、一周和一个月于一体的高/低点,它可以画出简单的线段,而且不会把图表搞得一团糟。 我知道你说过要试着找另一种;但是,我真的找了,却没有找到。我也在mql4论坛发了一个请求。还没有收到回复。 很简单,我愿意付钱给某人(你)来修改这个指标。 我想增加 "天数",因为这个指标绘制的是以前的每一天。在欧元/美元和英镑/美元上,我的图表历史可以追溯到1996年或更早,所以它占用了太多的内存与所有这些线条。 如果你不打算雇用我(也许有人会雇用我),在目前这个图表上增加 "天数 "是不是太复杂了?我可以继续使用它,直到我找到另一个或找到愿意修改的人。如果这是个耗时的要求,我完全理解,并感谢你对一切的帮助。 jbozman 附加的文件: hilo_v1.0c_1.mq4 8 kb 1...382383384385386387388389390391392393394395396...786 新评论 原因: 取消 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
我已经找到了很好的剥头皮系统和模板,但在安装这个系统后,它运行得很慢。也许有人能看一下,检测一下是什么原因造成的。
模板和指标。
1m_alf_scalp.zip看起来蜡烛颜色指标(IT_Candles)是问题所在。谁能理解那段代码有什么问题,导致MT4运行缓慢?
//+------------------------------------------------------------------+
#property indicator_chart_window
#include
#property indicator_buffers 2
extern color UpColor = LimeGreen;
extern color DnColor = Red;
extern int Width = 5;
extern double alpha = 0.09;
double ev=EMPTY_VALUE,Trend,Trigger,ALF;
double Up[];
double Dn[];
int init()
{
IndicatorBuffers(2);
SetIndexStyle(0,DRAW_HISTOGRAM,0,Width,UpColor);
SetIndexBuffer(0,Up);
SetIndexStyle(1,DRAW_HISTOGRAM,0,Width,DnColor);
SetIndexBuffer(1,Dn);
return(0);
}
int deinit()
{
return(0);
}
int start()
{
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1); //---- check for possible errors
if(counted_bars>0) counted_bars--; //---- last counted bar will be recounted
int limit = Bars-counted_bars;
for (int i=limit;i>=0;i--)
{
Up = ev;
Dn = ev;
Trend = iCustom(NULL,0,"Instant_Trendline",alpha,0,i);
Trigger = iCustom(NULL,0,"Instant_Trendline",alpha,1,i);
ALF = iCustom(NULL,0,"ALF",0,i+1);
if (Trigger > Trend && Close > Open && Close > ALF)
{
Up = MathMax(Open,Close);
Dn = MathMin(Open,Close);
}
if (Trigger < Trend && Close < Open && Close < ALF)
{
Dn = MathMax(Open,Close);
Up = MathMin(Open,Close);
}
}
}
看起来蜡烛颜色指标(IT_Candles)是问题所在。有谁知道那段代码有什么问题,导致MT4运行缓慢?
//+------------------------------------------------------------------+
#property indicator_chart_window
#include
#property indicator_buffers 2
extern color UpColor = LimeGreen;
extern color DnColor = Red;
extern int Width = 5;
extern double alpha = 0.09;
double ev=EMPTY_VALUE,Trend,Trigger,ALF;
double Up[];
double Dn[];
int init()
{
IndicatorBuffers(2);
SetIndexStyle(0,DRAW_HISTOGRAM,0,Width,UpColor);
SetIndexBuffer(0,Up);
SetIndexStyle(1,DRAW_HISTOGRAM,0,Width,DnColor);
SetIndexBuffer(1,Dn);
return(0);
}
int deinit()
{
return(0);
}
int start()
{
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1); //---- check for possible errors
if(counted_bars>0) counted_bars--; //---- last counted bar will be recounted
int limit = Bars-counted_bars;
for (int i=limit;i>=0;i--)
{
Up = ev;
Dn = ev;
Trend = iCustom(NULL,0,"Instant_Trendline",alpha,0,i);
Trigger = iCustom(NULL,0,"Instant_Trendline",alpha,1,i);
ALF = iCustom(NULL,0,"ALF",0,i+1);
if (Trigger > Trend && Close > Open && Close > ALF)
{
Up = MathMax(Open,Close);
Dn = MathMin(Open,Close);
}
if (Trigger < Trend && Close < Open && Close < ALF)
{
Dn = MathMax(Open,Close);
Up = MathMin(Open,Close);
}
}
}
triip
检查 你的指标文件夹中是否也有 "Instant_Trendline "和 "ALF "指标(这两个指标都是该指标正常工作所需的)。如果你没有这两个指标,从那个压缩包中提取ex4文件,该指标就可以正常工作了(如果你没有这两个指标,它将会非常慢)。
triip 检查你的指标文件夹中是否有 "Instant_Trendline "和 "ALF "指标(该指标需要这两个指标才能正确工作)。如果你没有这两个指标,从那个压缩包中提取ex4文件,指标就可以正常工作了(如果你没有这两个指标,就会很慢)。
是的,我也把其他指标放在图表上,但我一加入IT_Candles,MT4就变慢了,特别是切换时间段变慢。
是的,我也把其他指标放在图表上,但我一加入IT_Candles,MT4就变慢了,特别是切换时间段变慢了。
triip
它们不需要出现在图表上。但它们必须存在于指标文件夹中(使用这些确切的名称)。检查 的最简单方法是进入终端的专家选项卡,看看那里是否有一些错误(就像图片上的那个)。
triip 它们不需要出现在图表上。但它们必须存在于指标文件夹中(使用这些确切的名称)。最简单的检查方法是进入终端的专家选项卡,看看那里是否有一些错误(就像图片上的那个)。
那里没有错误。
但我注意到,ALF.ex4的速度并不慢,但ALF-MTF.ex4却完全变慢了。我在指标文件夹里有一个子文件夹,所有这些提到的指标都放在那里。也许我应该重新安装干净的MT4。
那里没有错误。
但我注意到,ALF.ex4的速度并不慢,但ALF-MTF.ex4却完全变慢了。我在指标文件夹里有一个子文件夹,里面存放着所有这些提到的指标。也许我应该重新安装干净的MT4。
把它们从子文件夹移到主指标文件夹,然后试试
把它们从子文件夹中移到主指标文件夹中,然后试一下
好多了,工作得很顺利 谢谢你mladen!
你好。
我在图表中的条形图上书写文本对象时总是遇到问题。
比如说
ObjectCreate ("Xh", OBJ_TEXT,0,Time[0],High[0]+1*pips2dbl);
ObjectSetText("Xh","1",10,"Tahoma",Orange);
ObjectCreate ("X", OBJ_TEXT,0,Time[0],Low[0]-1*pips2dbl);
ObjectSetText("Xl","1",10,"Tahoma",Orange);
在我的条形图下面的文本对象工作得很好,因为我的字体对象被固定在我的文本的 "头部 "上。
但是,如果我想在条形图上面写一些文字,我现在不知道我的字体大小为10的文字是怎样的,所以它被写进了条形图。
当我在更大的时间段写文本时也有问题,例如 "H1"、"D1 "或 "W1",因为我不得不改变我的字体距离为高或低值。
我知道我可以将我的文本旋转90°,但我不想这么做。
那么你知道解决这个问题的方法吗?首先尝试使用ATR而不是1*pips2dbl(这样它就会根据不同的时间框架和符号进行自我调整)。
还可以尝试将文本的锚点(OBJPROP_ANCHOR)调整为ANCHOR_LOWER,以显示在高点之上的文本对象。
可调整的部分应该是手数,以及手数所适用的账户余额。例如,参数可能是A=0.01,B=5000美元,或者,A=1.00,B=10000美元。
在这种情况下,你必须有多个可用于比较的参数值
你可以这样定义参数:extern double accountBalanceA = 5000; 然后在没有参数的情况下,使用这些参数进行比较。
jbozman
macd指标不需要任何改变(在99.99%的情况下,它只计算1或2个柱子)。
hilo指标以一种非常复杂的方式寻找数值。最好使用一些其他的指标,以更简单的方式完成这项任务(没必要把它弄得这么复杂)。嗨,mladen。我搜索了一下,没有找到一个集前一天、一周和一个月于一体的高/低点,它可以画出简单的线段,而且不会把图表搞得一团糟。
我知道你说过要试着找另一种;但是,我真的找了,却没有找到。我也在mql4论坛发了一个请求。还没有收到回复。
很简单,我愿意付钱给某人(你)来修改这个指标。
我想增加 "天数",因为这个指标绘制的是以前的每一天。在欧元/美元和英镑/美元上,我的图表历史可以追溯到1996年或更早,所以它占用了太多的内存与所有这些线条。
如果你不打算雇用我(也许有人会雇用我),在目前这个图表上增加 "天数 "是不是太复杂了?我可以继续使用它,直到我找到另一个或找到愿意修改的人。如果这是个耗时的要求,我完全理解,并感谢你对一切的帮助。
jbozman