[存档!]任何菜鸟问题,为了不使论坛变得混乱。专业人士,不要路过。没有你,哪里都不能去 - 4. - 页 144 1...137138139140141142143144145146147148149150151...631 新评论 [删除] 2012.05.25 16:59 #1431 iMAG: 为了明确这一点,试着看一下赋值运算符之后的GetLastError()--它一定有助于分解。至少,在上面的例子中,一切运作正常。;) int init() { //---- //i = 0; double s[10] = {,,3,4,5,6,7,8,9}; int i = 0; while(i < 10) { s[i] = i + 10; i++; Print("s[i]: ", DoubleToStr(s[i], 2), " i:", i, " GetLastError():", GetLastError())。 Sleep(5000); } //---- return(0); } 下面是一个例子:值(i + 10)没有被分配。有了这个初始化,只能通过一个数组的订单--有什么秘密? Alekseu Fedotov 2012.05.25 19:31 #1432 斯捷潘2 作品 int init() { //---- double s[11]; // i = 0; int i = 0; while(i < 10) { s[i] = i*10; i++; Print("s[i]: ", DoubleToStr(s[i], 2), " i: ", i, " GetLastError(): ", GetLastError()); Sleep(5000); } return(0); } Miner 2012.05.26 04:44 #1433 GaryKa: 撕裂了我的大脑...一公斤西红柿 的价值低于卢布,所以西红柿 变得更贵?为什么他们说他们越来越便宜? 也就是说,一块钱,不管是在分子还是分母中,都是金钱(即使是在专业领域),其余的是 "货物"。 这就是它的工作原理吗? 十字架呢?你怎么知道在形成一个十字架时要除以什么呢? 也就是说,为什么一种货币一定在分子里,另一种在分母里,而不是相反? [删除] 2012.05.26 05:14 #1434 r772ra: 斯捷潘2 作品 你这话是什么意思? 这个终端取决于经纪商! [删除] 2012.05.26 05:22 #1435 Space: 也就是说,一美元无论在分子还是分母中都是货币(即使在专业领域),其余的是 "贸易"。 这就是它的工作原理吗? 十字架呢?你怎么知道在形成一个十字架时要除以什么呢? 也就是说,为什么一种货币一定在分子里,另一种在分母里,而不是相反? 学习过程如下。 DIVISION - 连续,但方向相反 奔跑--动作脚本 Alekseu Fedotov 2012.05.26 07:08 #1436 Stepan2: 你这话是什么意思?终端取决于经纪商! 我不能对经纪人说什么,经纪人不太可能有问题。 而对于代码,也许我错了。 你声明了一个数组 并填充了它 double s[10] = {,,,3,4,5,6,7,8,9}; 和你展示这些数字,是的,如果是双倍,那么就是1.0,2.0,等等。 就我而言 double s[11]; 它需要大一点,以避免错误(4002)。 并在循环中填充,所以,是的,我没有得到它......,只通过一个订单数组.....。 [删除] 2012.05.26 07:46 #1437 请教,我在同一窗口和同一刻度上放置了两个MACD(Macd1和Macd2)。 我只在指标窗口中可见的图表值中找到每个MACD的最大值和最小值。 我把它们放到Comment() 中。 一切正常,但信号线从第一条开始画,即我必须等到它们充满整个窗口。 如何解决这个问题? 以及如何优化我笨拙的代码? #property indicator_separate_window #property indicator_buffers 4 #property indicator_color1 Lime #property indicator_color2 Red #property indicator_color3 Aqua #property indicator_color4 DarkOrange #property indicator_width1 2 #property indicator_width3 2 //--- buffers double Macd1Buffer[]; double Signal1Buffer[]; double Macd2Buffer[]; double Signal2Buffer[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,Macd1Buffer); SetIndexStyle(1,DRAW_LINE); SetIndexBuffer(1,Signal1Buffer); SetIndexStyle(2,DRAW_LINE); SetIndexBuffer(2,Macd2Buffer); SetIndexStyle(3,DRAW_LINE); SetIndexBuffer(3,Signal2Buffer); IndicatorDigits(Digits); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- Comment(""); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { double max1=-0.01,min1=0.01, max2=-0.01,min2=0.01, max_M1=-0.01,min_M1=0.01, max_M2=-0.01,min_M2=0.01, max_S1=-0.01,min_S1=0.01, max_S2=-0.01,min_S2=0.01; int bars_counted=WindowBarsPerChart()-1, limit; limit=bars_counted; //---- macd counted in the 1-st buffer for(int i=0; i<limit; i++) { Macd1Buffer[i]=iMA(NULL,0,6,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,12,0,MODE_EMA,PRICE_CLOSE,i); max_M1=MathMax(Macd1Buffer[i],max_M1); min_M1=MathMin(Macd1Buffer[i],min_M1); Signal1Buffer[i]=iMAOnArray(Macd1Buffer,Bars,5,0,MODE_SMA,i); max_S1=MathMax(Signal1Buffer[i],max_S1); min_S1=MathMin(Signal1Buffer[i],min_S1); max1=MathMax(max_M1,max_S1); min1=MathMin(min_M1,min_S1); } //---- done //---- macd counted in the 3-st buffer for(i=0; i<limit; i++) { Macd2Buffer[i]=iMA(NULL,0,12,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,26,0,MODE_EMA,PRICE_CLOSE,i); max_M2=MathMax(Macd2Buffer[i],max_M2); min_M2=MathMin(Macd2Buffer[i],min_M2); Signal2Buffer[i]=iMAOnArray(Macd2Buffer,Bars,9,0,MODE_SMA,i); max_S2=MathMax(Signal2Buffer[i],max_S2); min_S2=MathMin(Signal2Buffer[i],min_S2); max2=MathMax(max_M2,max_S2); min2=MathMin(min_M2,min_S2); } //---- done Comment( "\n"," Баров = ",WindowBarsPerChart()-1, "\n"," max_M1 = ",max_M1, "\n"," min_M1 = ",min_M1, "\n"," max_S1 = ",max_S1, "\n"," min_S1 = ",min_S1, "\n"," max_M2 = ",max_M2, "\n"," min_M2 = ",min_M2, "\n"," max_S2 = ",max_S2, "\n"," min_S2 = ",min_S2, "\n"," max1 = ",max1, "\n"," min1 = ",min1, "\n"," max2 = ",max2, "\n"," min2 = ",min2); //---- return(0); } //+------------------------------------------------------------------+ Alekseu Fedotov 2012.05.26 08:17 #1438 MK07: 请教,我在同一窗口和同一刻度上放置了两个MACD(Macd1和Macd2)。 我只在指标窗口中可见的图表值中找到每个MACD的最大值和最小值。 我把它们放到Comment()中。 一切正常,但信号线从第一条开始画,即我必须等到它们充满整个窗口。 如何解决这个问题? 以及如何优化我笨拙的代码? 试一下,每个缓冲区都在一个单独的循环中。 Виктор 2012.05.26 09:38 #1439 r772ra: 试试吧,每个缓冲区都在一个单独的循环中。 是的。 for(int i=0; i<limit; i++) { Macd1Buffer[i]=iMA(NULL,0,6,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,12,0,MODE_EMA,PRICE_CLOSE,i); Macd2Buffer[i]=iMA(NULL,0,12,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,26,0,MODE_EMA,PRICE_CLOSE,i); } for(i=0; i<limit; i++) { Signal1Buffer[i]=iMAOnArray(Macd1Buffer,Bars,5,0,MODE_SMA,i); Signal2Buffer[i]=iMAOnArray(Macd2Buffer,Bars,9,0,MODE_SMA,i); } [删除] 2012.05.26 14:08 #1440 谢谢你的建议。 一切正常,但当你安装指标时,它的画法很奇怪(见图表)。 从图表窗口的左边缘到垂直黄线的缩进(以条为单位),对于窗口中任何数量的可见条数,总是不间断的,等于8条。 一旦这8条超出窗口的左边界,图表上的所有线条立即出现,然后一切正常。 它可以被修复,如何修复? #property indicator_separate_window #property indicator_buffers 4 #property indicator_color1 Lime #property indicator_color2 Red #property indicator_color3 Aqua #property indicator_color4 DarkOrange #property indicator_width1 2 #property indicator_width3 2 //--- buffers double Macd1Buffer[]; double Signal1Buffer[]; double Macd2Buffer[]; double Signal2Buffer[]; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,Macd1Buffer); SetIndexStyle(1,DRAW_LINE); SetIndexBuffer(1,Signal1Buffer); SetIndexStyle(2,DRAW_LINE); SetIndexBuffer(2,Macd2Buffer); SetIndexStyle(3,DRAW_LINE); SetIndexBuffer(3,Signal2Buffer); IndicatorDigits(Digits); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- Comment(""); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { double max1=-0.01,min1=0.01, max2=-0.01,min2=0.01, max_M1=-0.01,min_M1=0.01, max_M2=-0.01,min_M2=0.01, max_S1=-0.01,min_S1=0.01, max_S2=-0.01,min_S2=0.01; int bars_counted=WindowBarsPerChart()-1, limit; limit=bars_counted; //---- macd counted in the 1-st buffer for(int i=0; i<limit; i++) { Macd1Buffer[i]=iMA(NULL,0,6,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,12,0,MODE_EMA,PRICE_CLOSE,i); Macd2Buffer[i]=iMA(NULL,0,12,0,MODE_EMA,PRICE_CLOSE,i)-iMA(NULL,0,26,0,MODE_EMA,PRICE_CLOSE,i); max_M1=MathMax(Macd1Buffer[i],max_M1); min_M1=MathMin(Macd1Buffer[i],min_M1); max_M2=MathMax(Macd2Buffer[i],max_M2); min_M2=MathMin(Macd2Buffer[i],min_M2); } for( i=0; i<limit; i++) { Signal1Buffer[i]=iMAOnArray(Macd1Buffer,Bars,5,0,MODE_SMA,i); Signal2Buffer[i]=iMAOnArray(Macd2Buffer,Bars,9,0,MODE_SMA,i); max_S1=MathMax(Signal1Buffer[i],max_S1); min_S1=MathMin(Signal1Buffer[i],min_S1); max_S2=MathMax(Signal2Buffer[i],max_S2); min_S2=MathMin(Signal2Buffer[i],min_S2); } max1=MathMax(max_M1,max_S1); min1=MathMin(min_M1,min_S1); //---- done Comment( "\n"," Баров = ",WindowBarsPerChart()-1, "\n"," max_M1 = ",max_M1, "\n"," min_M1 = ",min_M1, "\n"," max_S1 = ",max_S1, "\n"," min_S1 = ",min_S1, "\n"," max_M2 = ",max_M2, "\n"," min_M2 = ",min_M2, "\n"," max_S2 = ",max_S2, "\n"," min_S2 = ",min_S2, "\n"," max1 = ",max1, "\n"," min1 = ",min1, "\n"," max2 = ",max2, "\n"," min2 = ",min2); //---- return(0); } //+------------------------------------------------------------------+ 1...137138139140141142143144145146147148149150151...631 新评论 您错过了交易机会: 免费交易应用程序 8,000+信号可供复制 探索金融市场的经济新闻 注册 登录 拉丁字符(不带空格) 密码将被发送至该邮箱 发生错误 使用 Google 登录 您同意网站政策和使用条款 如果您没有帐号,请注册 可以使用cookies登录MQL5.com网站。 请在您的浏览器中启用必要的设置,否则您将无法登录。 忘记您的登录名/密码? 使用 Google 登录
为了明确这一点,试着看一下赋值运算符之后的GetLastError()--它一定有助于分解。至少,在上面的例子中,一切运作正常。;)
int init() { //---- //i = 0; double s[10] = {,,3,4,5,6,7,8,9}; int i = 0; while(i < 10) {
s[i] = i + 10;
i++; Print("s[i]: ", DoubleToStr(s[i], 2), " i:", i, "
GetLastError():", GetLastError())。
Sleep(5000);
}
//----
return(0);
}
下面是一个例子:值(i + 10)没有被分配。有了这个初始化,只能通过一个数组的订单--有什么秘密?
斯捷潘2
作品
撕裂了我的大脑...一公斤西红柿 的价值低于卢布,所以西红柿 变得更贵?为什么他们说他们越来越便宜?
也就是说,一块钱,不管是在分子还是分母中,都是金钱(即使是在专业领域),其余的是 "货物"。
这就是它的工作原理吗?
十字架呢?你怎么知道在形成一个十字架时要除以什么呢?
也就是说,为什么一种货币一定在分子里,另一种在分母里,而不是相反?
斯捷潘2
作品
你这话是什么意思?
这个终端取决于经纪商!
也就是说,一美元无论在分子还是分母中都是货币(即使在专业领域),其余的是 "贸易"。
这就是它的工作原理吗?
十字架呢?你怎么知道在形成一个十字架时要除以什么呢?
也就是说,为什么一种货币一定在分子里,另一种在分母里,而不是相反?
学习过程如下。
DIVISION - 连续,但方向相反
奔跑--动作脚本
你这话是什么意思?
终端取决于经纪商!
我不能对经纪人说什么,经纪人不太可能有问题。
而对于代码,也许我错了。
你声明了一个数组 并填充了它
和你展示这些数字,是的,如果是双倍,那么就是1.0,2.0,等等。
就我而言
它需要大一点,以避免错误(4002)。
并在循环中填充,所以,是的,我没有得到它......,只通过一个订单数组.....。
请教,我在同一窗口和同一刻度上放置了两个MACD(Macd1和Macd2)。 我只在指标窗口中可见的图表值中找到每个MACD的最大值和最小值。 我把它们放到Comment() 中。 一切正常,但信号线从第一条开始画,即我必须等到它们充满整个窗口。 如何解决这个问题? 以及如何优化我笨拙的代码?
请教,我在同一窗口和同一刻度上放置了两个MACD(Macd1和Macd2)。 我只在指标窗口中可见的图表值中找到每个MACD的最大值和最小值。 我把它们放到Comment()中。 一切正常,但信号线从第一条开始画,即我必须等到它们充满整个窗口。 如何解决这个问题? 以及如何优化我笨拙的代码?
试试吧,每个缓冲区都在一个单独的循环中。
谢谢你的建议。 一切正常,但当你安装指标时,它的画法很奇怪(见图表)。 从图表窗口的左边缘到垂直黄线的缩进(以条为单位),对于窗口中任何数量的可见条数,总是不间断的,等于8条。 一旦这8条超出窗口的左边界,图表上的所有线条立即出现,然后一切正常。 它可以被修复,如何修复?