//объявляем переменную cci_0 и присваиваем ей значение индикатора CCI на нулевом (текущем) бареdouble cci_0=iCCI(NULL,0, CCIperiod, CCIprice,0);//объявляем переменную cci_1 и присваиваем ей значение индикатора CCI на первом (предыдущем) бареdouble cci_1=iCCI(NULL,0, CCIperiod, CCIprice,1);//если значение индикатора CCI на нулевом (текущем) баре уже меньше уровня 100//а предыдущее его значение (на первом баре) было больше уровня 100//значит произошло пересечение, и мы даем сигнал на продажуif( cci_0<100&& cci_1>100) SignalSell=true;
上述例子描述了CCI、RSI和WPR的买入和卖出代码。究竟为什么要使用这些指标?在我看来,他们是最容易学习如何建立一个专家顾问的。买入和卖出原则对他们来说是一样的。小于-100(对于CCI),-70(对于RSI)和20(对于WPR),分别卖出将是:+100,-30和80。在我看来(不止一次穿越),错误是在交易条件中,但我不明白的地方.....。这是关于正确书写交易条件的原则(我认为是)..............。这就是我想问你的问题........
结果是代码不能编译,所以没有编译是错误的?
在mql4中,如果一切出错,有什么好办法可以限制损失(停止EA)?我只发明了在ini文件中不时地重置AccountEquity()的 最大值,如果AccountEquity()的当前值比保存的值少某个定义的百分比,那么就停止交易。请告知。
寻找Surgeon的公平和平衡指标。它在CodeBase中。
等一下,它在哪里CCI[1]?
结果是代码没有通过编译,也就是说,没有编译是错误的?
CCI[1]是第一个条形图的CCI。
什么是编纂?编译EA(指标、脚本)是你在元编辑器中按F5(编译)所做的事 ??????????
我认为,因为第一条杠还没有形成,所以应该在第一条杠上进行计算。因此,CCI[1]。我错在哪里??????
>> 我错在哪里??????
在一切。辅导员已经分散了,意识到你仍然需要阅读教科书,以便掌握基本概念。否则就不会有对话。
例如,CCI[1],即使是像我这样的 "程序员 "也会把它读成一个名为CCI的数组的单元格调用,并且索引为[1]。你这样说是什么意思?
在一切。辅导员已经分散了,意识到你仍然需要阅读教科书,以便掌握基本概念。否则,对话将无法进行。
例如,即使像我这样的 "程序员 "也会把CCI[1]理解为对名称为CCI、索引为[1]的数组单元的调用。你这话是什么意思?
差不多吧,那教程的链接呢?或者是MQL4教程 "MQL4Bookrussian"??????????????
大致相同的事情。
提供教科书的链接如何?或者可能是MQL4教程 "MQL4Bookrussian"???????????????。
1.如果是一样的,你在哪里以及为什么声明(创建)这个数组?你可以调用存在的东西。
2.在页面顶部的链接教程。我个人认为罗什的文章 更适合。
1.如果相同,你在哪里以及为什么声明(创建)这个数组?你可以调用任何存在的东西。
2.教科书 链接在页面顶部。我个人认为罗什的文章 更适合。
1进入CCI[1]>-100是一个买入的交易条件
2读了(虽然很肤浅)教程,读了长达30页的KimIV有用的函数,读了 "傻瓜 "的文章,但无处找到答案,为什么令牌条件应该这样写,如果(废话知道什么<*****&&废话知道如何>******)。为什么应该是这样。
tratat AND trat,而不仅仅是if(trat<******)。这就是我不清楚的地方。当然,vinin早些时候向我解释了(对MA而言)什么是什么,但为什么你必须使用逻辑和..... 未解释的.................。
还没看完罗沙的文章,谢谢你的提示.............。
1进入CCI[1]>100是一个买入交易条件
为什么应该是tratata和trututu,而不仅仅是if(tratata<******)。这就是我不清楚的地方。当然,vinin早些时候(为MA)向我解释了什么是什么,但为什么你必须使用逻辑和..... 未解释的........。
1.这不是关于它是什么样的条件,而是关于你在比较什么,与什么比较。你认为你是在比较CCI指标的值和水平,而不是指标,你是在写一个不存在的、不必要的自定义数组CCI[]的单元格的值,它只是有相同的名字,也就是空的。这是一个严重的错误,编译器将无法进行编译。
2.如果你从一个箭头指标中获取信号,其中的数值只有在条件发生时才会出现,你就是在写。
if(trata>0) enter; 这是因为信号是离散的,如果没有箭头,则缓冲区是空的,没有其他可检查的。
如果你跟踪指示线越过某个电平(缓冲区已满,信号是模拟的),那么这样写if(trata>level)将导致在指示线高于该电平时,输入的信号是连续的。但这不是你想要的,你想在穿越的那一刻得到一个信号。而穿越的时刻正是通过tratata和trutata被捕捉到的。
也就是说,我们把零点和第一条街的CCI值读入并写入变量。我们检查CCI是否在第一个(前一个)柱子上更高。如果零条上的CCI已经跌破了这个水平,那么就发生了一个交叉。将这两个条件与逻辑和结合起来,我们就有了一个单一的交叉信号。
1.这不是关于它是什么状况,而是关于你在比较什么,与什么比较。你认为你是在与CCI指标的水平进行比较,但你是在写一个不存在的、不必要的自定义数组CCI[]的单元格的值,该数组只是具有相同的名称,也就是空的空间。这是一个严重的错误,编译器将无法进行编译。
2.如果你从一个箭头指标中获取信号,其中的数值只有在条件发生时才会出现,你就是在写。
if(tratata>0) enter; 这是因为信号是离散的,如果没有箭头,说明缓冲区是空的,没有其他可检查的。
如果你跟踪指示线越过某个电平(缓冲区已满,信号是模拟的),那么这样写if(trata>level)将导致在指示线高于该电平时,输入的信号是连续的。但这不是你想要的,你想在穿越的那一刻得到一个信号。而穿越的时刻正是通过tratata和trutata被抓住的。
也就是说,我们读取并将零点和第一条的CCI值放入变量中。我们检查CCI是否在第一个(前一个)柱子上更高。如果零条上的CCI已经跌破了这个水平,那么就发生了一个交叉。将这两个条件与逻辑和结合起来,我们就能得到一个单一的交叉信号。
wo......Wo.......Wo.............. 了解....了解.....shaz,今天下午我将给granit77回复谢谢。即使是第一眼,你也能看到你有天使般的耐心。
不像现在学校里的老师.....