[存档]任何菜鸟问题,为了不使论坛变得杂乱无章。专业人士,不要路过。没有你就无处可去 - 3. - 页 536 1...529530531532533534535536537538539540541542543...652 新评论 Oleg 2012.01.28 04:30 #5351 如果你删除了指标文件夹中所有扩展名为*.ex4的文件 - 然后我可以一次性编译所有可用的*.mq4文件吗? (即,不是每个人单独,而是所有的人一起) 谢谢你! fore-x 2012.01.28 04:48 #5352 chief2000: 如果你删除了指标文件夹中所有扩展名为*.ex4的文件 - 然后我可以一次性编译所有可用的*.mq4文件吗? (即,不是每个人单独,而是所有的人一起) 谢谢你! 关闭终端,然后打开它,它们都会自己编译。 Oleg 2012.01.28 04:59 #5353 fore-x: 关闭终端,然后打开它,它就会自己编译。 这就是我所指望的,但只编制了几个指标,其他什么都没有。 ivn 2012.01.28 08:17 #5354 下午好,如何为另一个时间框架写一个标准的顾问。即把这个指标放在1小时图上,它将显示4小时的指标。 пытался //+------------------------------------------------------------------+ //|在4点钟方向.mq4 || //| Copyright © 2012, MetaQuotes Software Corp. //|https://www.metaquotes.net/| //+------------------------------------------------------------------+ #property copyright "Copyright © 2012, MetaQuotes Software Corp." #属性链接"https://www.metaquotes.net/" #property indicator_chart_window #property indicator_buffers 3 #property indicator_color1 LightSeaGreen #property indicator_color2 LightSeaGreen #属性 indicator_color3 LightSeaGreen //---- 指标参数 外部int BandsPeriod=20。 外部的inttern BandsShift=0。 外置双倍BandsDeviations=2.0。 //---- 缓冲区 双重MovingBuffer[]。 双倍UpperBuffer[]。 double LowerBuffer[]; //+------------------------------------------------------------------+ //|自定义指标初始化功能 //+------------------------------------------------------------------+ int init() { //---- 指标 SetIndexStyle(0,DRAW_LINE)。 SetIndexBuffer(0,MovingBuffer)。 SetIndexStyle(1,DRAW_LINE)。 SetIndexBuffer(1,UpperBuffer)。 SetIndexStyle(2,DRAW_LINE)。 SetIndexBuffer(2,LowerBuffer)。 //---- SetIndexDrawBegin(0,BandsPeriod+BandsShift)。 SetIndexDrawBegin(1,BandsPeriod+BandsShift)。 SetIndexDrawBegin(2,BandsPeriod+BandsShift)。 //---- return(0); } //+------------------------------------------------------------------+ //|布林线 | //+------------------------------------------------------------------+ int start() { int i,k,counted_bars=IndicatorCounted()。 双重偏离。 double sum,oldval,newres; int B=iBars( NULL,PERIOD_H4)。 double C=iClose(NULL,PERIOD_H4,0)。 //---- 如果(B <=BandsPeriod) 返回(0)。 //---- 初始零点 如果(counted_bars<1) for(i=1;i<=BandsPeriod;i++) { MovingBuffer[B-i]=EMPTY_VALUE。 UpperBuffer[B-i]=EMPTY_VALUE。 LowerBuffer[B-i]=EMPTY_VALUE。 } //---- int limit=B-counted_bars。 如果(counted_bars>0) limit++; for(i=0; i<limit; i++) MovingBuffer[i]=iMA(NULL,PERIOD_H4,BandsPeriod,BandsShift,MODE_SMA,PRICE_CLOSE,i) 。 //---- i=B-BandsPeriod+1。 如果(counted_bars>BandsPeriod-1) i=B-counted_bars-1。 while(i>=0) { sum=0.0。 k=i+BandsPeriod-1。 oldval=MovingBuffer[i]; while(k>=i) { newres=C[k]-oldval。 sum+=newres*newres。 k--; } 偏差=BandsDeviations*MathSqrt(sum/BandsPeriod)。 UpperBuffer[i]=oldval+deviation。 LowerBuffer[i]=oldval-deviation。 i--; } //---- return(0); } //+------------------------------------------------------------------+ 不起作用 这边newres=C[k]-oldval;- '[' - 意外标记 布林线指标。 為甚麼指標無法正常顯示,程式加上這行指令 #property strict ,就無法正常顯示 [ARCHIVE] Any rookie question, ema instead of sma Novichok1988 2012.01.28 09:51 #5355 我试着用教程根据时间进行操作,一切似乎都是正确的,但专家顾问并不活跃,例如,我需要在12.00运行该函数 外部双倍的Time_Cls=12.00。 int start() { int Cur_Hour=Hour()。 double Cur_Min =Minute()。 double Cur_time=Cur_Hour + Cur_Min100。 如果(Cur_time==Time_Cls) //my function 返回。 } Yury Reshetov 2012.01.28 12:40 #5356 audiomoroz: 我正试图按照教程做一个基于时间的操作,一切似乎都是正确的,但专家顾问并不活跃,例如,该功能应该在12.00运行。 如果(Cur_time==Time_Cls) //my function 返回。 } 因为通过定时器触发算法的执行或以毫秒级的精度捕捉刻度的到来是不同的概念。 Sersad 2012.01.28 12:55 #5357 同志们。 我的策略测试仪 在相同的时间间隔(2011年5月1日-2012年1月27日),货币对欧元兑美元,以小时为单位(H1),从一个经纪公司(Alpari)和相同的专家顾问,但在不同的电脑(笔记本电脑,台式机)上显示了相反的结果在PC上--2000美元,在笔记本电脑上+3000美元。在那里,在那里测试了2-3次。 请告诉我原因和该怎么做,以及/或给我一个可以阅读该主题的链接。 Vadim Zhunko 2012.01.28 13:24 #5358 chief2000:这是我所希望的,但它只汇编了几个指标,没有其他。 有必要事先从带有指标的文件夹中删除mqlcache.dat 文件。 Oleg 2012.01.28 13:40 #5359 Zhunko: 你必须事先从装有指标的文件夹中删除mqlcache.dat 文件。 你的解决方案奏效了! 非常感谢您! Oleg 2012.01.28 14:30 #5360 我有一个问题 - 是否可以从自定义指标的 代码中知道它所运行的窗口目前是否处于活动状态? 例如,同一个指标在两个窗口中运行--你需要它只在图表处于活动状态的窗口中工作,而在第二个窗口中不活动。 谢谢你! 1...529530531532533534535536537538539540541542543...652 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
- 然后我可以一次性编译所有可用的*.mq4文件吗?
(即,不是每个人单独,而是所有的人一起)
谢谢你!
如果你删除了指标文件夹中所有扩展名为*.ex4的文件
- 然后我可以一次性编译所有可用的*.mq4文件吗?
(即,不是每个人单独,而是所有的人一起)
谢谢你!
关闭终端,然后打开它,它就会自己编译。
这就是我所指望的,但只编制了几个指标,其他什么都没有。
下午好,如何为另一个时间框架写一个标准的顾问。即把这个指标放在1小时图上,它将显示4小时的指标。
пытался //+------------------------------------------------------------------+
//|在4点钟方向.mq4 ||
//| Copyright © 2012, MetaQuotes Software Corp.
//|https://www.metaquotes.net/|
//+------------------------------------------------------------------+
#property copyright "Copyright © 2012, MetaQuotes Software Corp."
#属性链接"https://www.metaquotes.net/"
#property indicator_chart_window
#property indicator_buffers 3
#property indicator_color1 LightSeaGreen
#property indicator_color2 LightSeaGreen
#属性 indicator_color3 LightSeaGreen
//---- 指标参数
外部int BandsPeriod=20。
外部的inttern BandsShift=0。
外置双倍BandsDeviations=2.0。
//---- 缓冲区
双重MovingBuffer[]。
双倍UpperBuffer[]。
double LowerBuffer[];
//+------------------------------------------------------------------+
//|自定义指标初始化功能
//+------------------------------------------------------------------+
int init()
{
//---- 指标
SetIndexStyle(0,DRAW_LINE)。
SetIndexBuffer(0,MovingBuffer)。
SetIndexStyle(1,DRAW_LINE)。
SetIndexBuffer(1,UpperBuffer)。
SetIndexStyle(2,DRAW_LINE)。
SetIndexBuffer(2,LowerBuffer)。
//----
SetIndexDrawBegin(0,BandsPeriod+BandsShift)。
SetIndexDrawBegin(1,BandsPeriod+BandsShift)。
SetIndexDrawBegin(2,BandsPeriod+BandsShift)。
//----
return(0);
}
//+------------------------------------------------------------------+
//|布林线 |
//+------------------------------------------------------------------+
int start()
{
int i,k,counted_bars=IndicatorCounted()。
双重偏离。
double sum,oldval,newres;
int B=iBars( NULL,PERIOD_H4)。
double C=iClose(NULL,PERIOD_H4,0)。
//----
如果(B <=BandsPeriod) 返回(0)。
//---- 初始零点
如果(counted_bars<1)
for(i=1;i<=BandsPeriod;i++)
{
MovingBuffer[B-i]=EMPTY_VALUE。
UpperBuffer[B-i]=EMPTY_VALUE。
LowerBuffer[B-i]=EMPTY_VALUE。
}
//----
int limit=B-counted_bars。
如果(counted_bars>0) limit++;
for(i=0; i<limit; i++)
MovingBuffer[i]=iMA(NULL,PERIOD_H4,BandsPeriod,BandsShift,MODE_SMA,PRICE_CLOSE,i) 。
//----
i=B-BandsPeriod+1。
如果(counted_bars>BandsPeriod-1) i=B-counted_bars-1。
while(i>=0)
{
sum=0.0。
k=i+BandsPeriod-1。
oldval=MovingBuffer[i];
while(k>=i)
{
newres=C[k]-oldval。
sum+=newres*newres。
k--;
}
偏差=BandsDeviations*MathSqrt(sum/BandsPeriod)。
UpperBuffer[i]=oldval+deviation。
LowerBuffer[i]=oldval-deviation。
i--;
}
//----
return(0);
}
//+------------------------------------------------------------------+
不起作用
这边newres=C[k]-oldval;- '[' - 意外标记
布林线指标。
外部双倍的Time_Cls=12.00。
int start()
{
int Cur_Hour=Hour()。
double Cur_Min =Minute()。
double Cur_time=Cur_Hour + Cur_Min100。
如果(Cur_time==Time_Cls)
//my function
返回。
}
我正试图按照教程做一个基于时间的操作,一切似乎都是正确的,但专家顾问并不活跃,例如,该功能应该在12.00运行。
如果(Cur_time==Time_Cls)//my function
返回。
}
同志们。
我的策略测试仪 在相同的时间间隔(2011年5月1日-2012年1月27日),货币对欧元兑美元,以小时为单位(H1),从一个经纪公司(Alpari)和相同的专家顾问,但在不同的电脑(笔记本电脑,台式机)上显示了相反的结果在PC上--2000美元,在笔记本电脑上+3000美元。在那里,在那里测试了2-3次。
请告诉我原因和该怎么做,以及/或给我一个可以阅读该主题的链接。
这是我所希望的,但它只汇编了几个指标,没有其他。
你必须事先从装有指标的文件夹中删除mqlcache.dat 文件。
你的解决方案奏效了!
非常感谢您!
我有一个问题 -
是否可以从自定义指标的 代码中知道它所运行的窗口目前是否处于活动状态?
例如,同一个指标在两个窗口中运行--你需要它只在图表处于活动状态的窗口中工作,而在第二个窗口中不活动。
谢谢你!