[警告关闭!]任何新手问题,为了不给论坛添乱。专业人士,不要走过。没有你,哪里都不能去。 - 页 647 1...640641642643644645646647648649650651652653654...1145 新评论 DDFedor 2010.06.24 17:16 #6461 Mathers: 对。 Lonely_man 2010.06.24 18:22 #6462 论坛成员下午好!我发现了一个有趣的构建趋势线的代码,并决定用它来玩一下 - 这将绘制趋势线,而不是点,而是百分比,但由于某些原因 - 在我完成动荡后停止绘制历史 - 只有最后三条(或者说如果你运行动荡,它绘制的趋势线自开始正常,但一旦你点击更新动荡 - 属性>ОК历史重置。 我做错了什么? 我画了下面的代码,谁能告诉我问题出在哪里--我加粗的那段代码? 问题是,该指标立即向后画出历史记录,而在改变参数后并没有重置它。 #属性 indicator_separate_window #property indicator_buffers 1 #property indicator_color1 LimeGreen 双澳元。 外部int PerAvr=5,Delta=1; double Idx[]; //+------------------------------------------------------------------+ //|自定义指标初始化功能 //+------------------------------------------------------------------+ int init() { //---- 指标 SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2)。 SetIndexBuffer(0,Idx)。 //---- return(0); } //+------------------------------------------------------------------+ //|Custor指示器去初始化功能| //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //|自定义指标迭代函数| //+------------------------------------------------------------------+ int start() { int counted_bars=IndicatorCounted()。 if(counted_bars<0) return(-1); 如果(counted_bars>0) counted_bars--。 int limit=Bars-counted_bars。 for(int i=limit; i>=0; i--) { AUD=(iMA("AUDUSD",0,PerAvr,0,MODE_LWMA,PRICE_CLOSE,i)-iMA("AUDUSD",0,PerAvr,0,MODE_LWMA,PRICE_CLOSE,i+De lta)*100/iMA("AUDUSD",0,PerAvr,0,MODE_LWMA,PRICE_CLOSE,i+De lta) 。 //if (Curency == "AUDUSD") Idx[i] = AUD。 } //---- //---- return(0); } //+------------------------------------------------------------------+ [WARNING CLOSED!] Any newbie 谁想要一个战略?很多,而且是免费的) 顾比多重移动平均线 Alexander 2010.06.24 19:55 #6463 Lonely_man: 下午好,论坛成员。 我发现了一个有趣的建立趋势线的代码。 我决定用它玩一下。 出于某种原因,我想起了一个轶事:在一个程序员的家庭里,一个儿子找到他的父亲,问为什么太阳从东边升起,从西边落下。 爸爸,眼睛不离开电脑,它真的从东方升起吗?-是的 -它在西方落下?- 是的,那么,什么,每一天?- 是的,好吧,如果它在工作,就不要碰任何东西。 Artyom Trishkin 2010.06.24 20:16 #6464 Roger: 出于某种原因,我想起了一个轶事:在一个程序员的家庭里,一个儿子找到他的父亲,问为什么太阳从东边升起,从西边落下。 爸爸,眼睛不离开电脑,它真的从东方升起吗?-是的 -它在西方落下?- 是的,那么,什么,每一天?- 是的,好吧,如果它在工作,你不必碰任何东西。 :)) Igor Makanu 2010.06.24 21:38 #6465 Lonely_man: 论坛的用户们,你们好!我发现了一个有趣的绘制趋势线的代码。 你知道什么是有趣的吗--你根据你的原则改变了代码,并希望有一支学者大队来寻找错误。 你只是尝试输出你想在评论中得到的信息吗? 有可能一切正常,但你得到的数据不是显示在当前价格,而是在图表底部的某个地方--我想这是分离风的问题。 SZS 好运 Lonely_man 2010.06.24 23:04 #6466 IgorM: 你知道什么是有趣的吗--你根据你的原则改变了代码,并希望有一支学者大队来寻找错误。 你只是尝试输出你想在评论中得到的信息吗? 有可能一切正常,但你得到的数据没有显示在当前价格上,而是在图表底部的某个地方--我想这是分离风。 SZS 好运 我知道分离器--我知道,它在一个单独的窗口中,这与它无关。 我看不出这段代码会发生什么--显然这种计算方法对百分比(()不起作用。 罗杰 随即,不知为何我想起了一个笑话--一个程序员的儿子来找他的父亲,问为什么太阳从东边升起,从西边落下? 爸爸,眼睛不离开电脑,它真的从东方升起吗?-是的 -它在西方落下?- 是的,那么,什么,每一天?- 是的,好吧,如果它在工作,你不必碰任何东西。 )))我只是不确定我想做什么。 提示:我需要它来进行交叉货币交易--英镑或日元对美元的点数变化并不能提供完整的信息,即它们对另一货币的价格下跌,但它们对美元的百分比变化可以清楚地显示一切--作为一个额外的工具是非常有用的事情。 Владимир Тезис 2010.06.25 02:23 #6467 Mathers: 谢谢你。我想唯一的区别是,EA是在每次有新的tick出现时启动的,而脚本必须无限循环地启动以保持其运行? 不一定。这完全取决于剧本的目的。如果剧本的目的是为了一次性的运行(这是绝大多数),就没有必要编造无休止的循环。在以预设手数开仓时,需要计算应用于市场的资金数额,可以作为这种一次性脚本的例子。由于不同工具的最小手数的点价是不同的,所以更容易打开所需的工具,对其应用脚本,在参数窗口中输入预定的手数,看看如果交易开始,会有多少钱被封锁。 这只是一个例子。脚本的目的可能是不同的。 [删除] 2010.06.25 02:29 #6468 Lonely_man: 我意识到了分离性,它在一个单独的窗口中,这与它无关。 我不知道这段代码如何工作--显然这种百分比计算方法不会工作()。 罗杰 随即,不知为何,我想起了一个轶事:一个程序员家庭的儿子来找他的父亲,问为什么太阳从东边升起,从西边落下? 爸爸,眼睛不离开电脑,它真的从东方升起吗?-是的 -它在西方落下?- 是的,那么,什么,每一天?- 是的,好吧,如果它在工作,你就不必碰任何东西。 )))提示:我需要它来进行交叉货币交易--英镑或日元对美元的点数并不能提供完整的信息,即它们对另一货币的价格下跌,但它们对美元的百分比变化可以清楚地显示一切--作为一个额外的指标,这是一个非常有用的东西。 这是一个相当简单的指标。 我看不出百分比比点数好在哪里,但不管怎样。 虽然你犯了一些错误,但是 :) 1. AUD=(iMA("AUDUSD",0,PerAvr,0,MODE_LWMA,PRICE_CLOSE, i)-iMA("AUDUSD",0,PerAvr,0,MODE_LWMA,PRICE_CLOSE,i+Delta)*100/iMA("AUDUSD",0,PerAvr,0,MODE_LWMA,PRICE_CLOSE,i+Delta)); 为了正确计算百分比,你必须加上括号。 AUD=((iMA("AUDUSD",0,PerAvr,0,MODE_LWMA,PRICE_CLOSE, i)-iMA("AUDUSD",0,PerAvr,0,MODE_LWMA,PRICE_CLOSE,i+Delta))*100/iMA("AUDUSD",0,PerAvr,0,MODE_LWMA,PRICE_CLOSE,i+Delta)); 2. 问题是,该指标立即向后画出历史记录,而在改变参数后并没有重置它。 最有趣的是,它唤醒了体育兴趣,在你的指标上坐了半个小时。 为什么没有计算历史? 答案是,你增加了一个除法运算。 100/iMA("AUDUSD",0,PerAvr,0,MODE_LWMA,PRICE_CLOSE,i+Delta) iMA("AUDUSD",0,PerAvr,0,MODE_LWMA,PRICE_CLOSE ,i+Delta)函数在历史的最开始返回0的事实没有被考虑到。而你在试图除以0时被 "踢出 "了错误4013(ERR_ZERO_DIVIDE),请查看日志。 你可以在FOR循环中再增加一个检查。 if(iMA("AUDUSD",0,PerAvr,0,MODE_LWMA,PRICE_CLOSE,i+Delta) == 0)continue; 而一切都会好起来的。下面是我的变体。 #property copyright "Copyright © 2010, Анатолий Сергеев" #property link "mql.sergeev@yandex.ru" #property indicator_separate_window #property indicator_buffers 1 #property indicator_color1 LimeGreen double AUD; extern int PerAvr=5,Delta=1; double Idx[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init(){ //---- indicators SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2); SetIndexBuffer(0,Idx); //---- } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start(){ int counted_bars=IndicatorCounted(); if(counted_bars<0) return(-1); if(counted_bars>0) counted_bars--; int limit=Bars-counted_bars; for(int i=limit; i>=0; i--){ double a = iMA("AUDUSD",0,PerAvr,0,MODE_LWMA,PRICE_CLOSE, i); double b = iMA("AUDUSD",0,PerAvr,0,MODE_LWMA,PRICE_CLOSE,i+Delta); if(b == 0)continue; AUD=((a-b)*100/b); Idx[i] = AUD; } } //+------------------------------------------------------------------+ Sergey Guliaev 2010.06.25 13:52 #6469 #property indicator_color1 白色 是否可以在start()模块中以编程方式改变这个参数。 也就是说,是否可以在程序进行过程中改变缓冲区的颜色设置? Victor Nikolaev 2010.06.25 13:58 #6470 valenok2003: #property indicator_color1 白色 是否可以在start()模块中以编程方式改变这个参数。 也就是说,是否可以在程序进行过程中改变缓冲区的颜色设置? 我不这么认为。为什么要这样呢? 1...640641642643644645646647648649650651652653654...1145 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
对。
我画了下面的代码,谁能告诉我问题出在哪里--我加粗的那段代码?
问题是,该指标立即向后画出历史记录,而在改变参数后并没有重置它。
#属性 indicator_separate_window
#property indicator_buffers 1
#property indicator_color1 LimeGreen
双澳元。
外部int PerAvr=5,Delta=1;
double Idx[];
//+------------------------------------------------------------------+
//|自定义指标初始化功能
//+------------------------------------------------------------------+
int init()
{
//---- 指标
SetIndexStyle(0,DRAW_LINE,STYLE_SOLID,2)。
SetIndexBuffer(0,Idx)。
//----
return(0);
}
//+------------------------------------------------------------------+
//|Custor指示器去初始化功能|
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//|自定义指标迭代函数|
//+------------------------------------------------------------------+
int start()
{
int counted_bars=IndicatorCounted()。
if(counted_bars<0) return(-1);
如果(counted_bars>0) counted_bars--。
int limit=Bars-counted_bars。
for(int i=limit; i>=0; i--)
{
AUD=(iMA("AUDUSD",0,PerAvr,0,MODE_LWMA,PRICE_CLOSE,i)-iMA("AUDUSD",0,PerAvr,0,MODE_LWMA,PRICE_CLOSE,i+De lta)*100/iMA("AUDUSD",0,PerAvr,0,MODE_LWMA,PRICE_CLOSE,i+De lta) 。
//if (Curency == "AUDUSD")
Idx[i] = AUD。
}
//----
//----
return(0);
}
//+------------------------------------------------------------------+
下午好,论坛成员。 我发现了一个有趣的建立趋势线的代码。 我决定用它玩一下。
出于某种原因,我想起了一个轶事:在一个程序员的家庭里,一个儿子找到他的父亲,问为什么太阳从东边升起,从西边落下。
爸爸,眼睛不离开电脑,它真的从东方升起吗?-是的 -它在西方落下?- 是的,那么,什么,每一天?- 是的,好吧,如果它在工作,就不要碰任何东西。
出于某种原因,我想起了一个轶事:在一个程序员的家庭里,一个儿子找到他的父亲,问为什么太阳从东边升起,从西边落下。
爸爸,眼睛不离开电脑,它真的从东方升起吗?-是的 -它在西方落下?- 是的,那么,什么,每一天?- 是的,好吧,如果它在工作,你不必碰任何东西。
论坛的用户们,你们好!我发现了一个有趣的绘制趋势线的代码。
你知道什么是有趣的吗--你根据你的原则改变了代码,并希望有一支学者大队来寻找错误。
你只是尝试输出你想在评论中得到的信息吗? 有可能一切正常,但你得到的数据不是显示在当前价格,而是在图表底部的某个地方--我想这是分离风的问题。
SZS 好运
你知道什么是有趣的吗--你根据你的原则改变了代码,并希望有一支学者大队来寻找错误。
你只是尝试输出你想在评论中得到的信息吗? 有可能一切正常,但你得到的数据没有显示在当前价格上,而是在图表底部的某个地方--我想这是分离风。
SZS 好运
我知道分离器--我知道,它在一个单独的窗口中,这与它无关。 我看不出这段代码会发生什么--显然这种计算方法对百分比(()不起作用。
随即,不知为何我想起了一个笑话--一个程序员的儿子来找他的父亲,问为什么太阳从东边升起,从西边落下?
爸爸,眼睛不离开电脑,它真的从东方升起吗?-是的 -它在西方落下?- 是的,那么,什么,每一天?- 是的,好吧,如果它在工作,你不必碰任何东西。
谢谢你。我想唯一的区别是,EA是在每次有新的tick出现时启动的,而脚本必须无限循环地启动以保持其运行?
不一定。这完全取决于剧本的目的。如果剧本的目的是为了一次性的运行(这是绝大多数),就没有必要编造无休止的循环。在以预设手数开仓时,需要计算应用于市场的资金数额,可以作为这种一次性脚本的例子。由于不同工具的最小手数的点价是不同的,所以更容易打开所需的工具,对其应用脚本,在参数窗口中输入预定的手数,看看如果交易开始,会有多少钱被封锁。
这只是一个例子。脚本的目的可能是不同的。
我意识到了分离性,它在一个单独的窗口中,这与它无关。 我不知道这段代码如何工作--显然这种百分比计算方法不会工作()。
随即,不知为何,我想起了一个轶事:一个程序员家庭的儿子来找他的父亲,问为什么太阳从东边升起,从西边落下?
爸爸,眼睛不离开电脑,它真的从东方升起吗?-是的 -它在西方落下?- 是的,那么,什么,每一天?- 是的,好吧,如果它在工作,你就不必碰任何东西。
这是一个相当简单的指标。 我看不出百分比比点数好在哪里,但不管怎样。
虽然你犯了一些错误,但是 :)
1.
为了正确计算百分比,你必须加上括号。
2.
问题是,该指标立即向后画出历史记录,而在改变参数后并没有重置它。
最有趣的是,它唤醒了体育兴趣,在你的指标上坐了半个小时。
为什么没有计算历史?
答案是,你增加了一个除法运算。
iMA("AUDUSD",0,PerAvr,0,MODE_LWMA,PRICE_CLOSE ,i+Delta)函数在历史的最开始返回0的事实没有被考虑到。而你在试图除以0时被 "踢出 "了错误4013(ERR_ZERO_DIVIDE),请查看日志。
你可以在FOR循环中再增加一个检查。
而一切都会好起来的。下面是我的变体。
#property indicator_color1 白色
是否可以在start()模块中以编程方式改变这个参数。
也就是说,是否可以在程序进行过程中改变缓冲区的颜色设置?
#property indicator_color1 白色
是否可以在start()模块中以编程方式改变这个参数。
也就是说,是否可以在程序进行过程中改变缓冲区的颜色设置?
我不这么认为。为什么要这样呢?