int TotalBars = 40; // Общее количество свечей по которым нужно осуществлять переборdouble max=0.0;
double min=100.0;
for(int n=0; n<TotalBars; n++)
{
if(High[n]>max) max=High[n];
if(Low[n]<min) min=Low[n];
}
MessageBox("Maximum="+max+" Minimum="+min);
朋友们,帮助:我的EA中有一个条件,即只有当前一个蜡烛图的低点低于前40个蜡烛图的所有低点时,才会打开买入头寸。问题:如何实现这种对前一个蜡烛图的低点的枚举,并找出前一个蜡烛图的低点是否低于前一个蜡烛图的低点?我预先感谢你。
艾谢谢你!)
嗯...问题就在这里...数据应该随着每一个新的刻度线而更新,并且只更新最后30个条形。出于某种原因,我保留了这些数据
帮助我找到一个错误!
我正在写一个基于 "黑色MACD "策略的EA。
货币对:任何
时间范围:15年及以上。
指标:EMA(3) EMA(18), RSI(14), MACD(12、26、9)
删除MACD指标的信号线,所有的指标都适用于收盘价指标。
买入信号:EMA(3) 从下往上穿过EMA(18),等待MACD显示积极的一面。如果RSI(14)高于50水平,则买入。止损设置在最后的局部最低点。通过逆转EMA交叉点退出交易,或者使用你自己的方法。
卖出信号:相反的情况:EMA(3)的交叉 EMA(18)向下,等待MACD为负值。如果RSI(14)低于50,则买入。 止损设置为最后的高点。
在编译代码时,它说缺少一个括号。经过长时间的搜索,我似乎找到了它应该在的地方,但是在修复了错误之后,我又得到了20-30个新的错误。请告诉我,我在哪里错过了。))) 代码在所附文件中。
BlackvMACD.mq4(5.21 KB) 删除
阅读:https://book.mql4.com/ru/variables/arrays 。事实证明,我可以为三对组织一个二维数组: double Mas_d[3][2] = {1, 0, 2, 0, 3,0}。
同时牢记:
Mas_d[1][1]的值对应于例如AUDCAD对,而Mas_d[1][2]是这个对的值。
例如,Mas_d[2][1]的值对应于澳元兑美元对,Mas_d[2][2]是该对的值。
例如,Mas_d[3][1]的值对应于AUDJPY,而Mas_d[3][2]是这个货币对的值。
数组中的元素会在两个时间段内保留它们的值。然后我就可以根据我需要的标准来改变数组元素的值。我是否正确理解了你的意思?:)
是的,这个方法可能不是最好的,但每个人都自己选择。然后,如果有必要,对其进行现代化改造和优化!:))
我正在使我的方法现代化的过程中。在某些情况下,这是不方便的!:D
是的,这个方法可能不是最好的,但每个人都为自己选择。然后,如果有必要,对其进行现代化改造和优化!:))
我正在使我的方法现代化的过程中。在某些情况下,这是不方便的!:D
我是一个初学者,我试图写一个试用的专家顾问,但我在编译时得到了一个错误 "\end_of_program' - ending bracket '}' expected C:\Program Files\ForexClub MT4\experts\trsi01.mq4 (30, 3)" 我知道我犯了一个错误,你能告诉我哪里出了问题吗?
//+------------------------------------------------------------------+
//| trsi01.mq4 | |
//| Copyright © 2011, MetaQuotes Software Corp.
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright"Copyright © 2011, MetaQuotes Software Corp.
#属性链接 "http://www.metaquotes.net"
double StopLoss=30。
double TakeProfit=100。
double Lots=0.1;
return(0);
int start()
{
如果(iRSI(NULL,0,8,PRICE_CLOSE,0)<30)
{
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-StopLoss*Point, Ask+TakeProfit*Point)
{
如果(iRSI(NULL,0,8,PRICE_CLOSE,0)>70)
{
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+StopLoss*Point,Bid-TakeProfit*Point)。
{
return(0);
{
我是一个初学者,我试图写一个试用的专家顾问,但当我编译它时,我得到了错误"\end_of_program' - ending bracket '}' expected C:\Program Files\ForexClub MT4\experts\trsi01.mq4 (30, 3)" 我知道我写错了,你能告诉我错误在哪里?
//+------------------------------------------------------------------+
//| trsi01.mq4 | |
//| Copyright © 2011, MetaQuotes Software Corp.
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2011, MetaQuotes Software Corp.
#属性链接 "http://www.metaquotes.net"
double StopLoss=30。
double TakeProfit=100。
double Lots=0.1;
return(0);
int start()
{
如果(iRSI(NULL,0,8,PRICE_CLOSE,0)<30)
{
OrderSend(Symbol(),OP_BUY,Lots,Ask,3,Bid-StopLoss*Point, Ask+TakeProfit*Point)
{
如果(iRSI(NULL,0,8,PRICE_CLOSE,0)>70)
{
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+StopLoss*Point,Bid-TakeProfit*Point)。
{
return(0);
{
错误在于你没有从头到尾阅读手册。如果你根本没有打开它。
但你显然错过了这一节:条件运算符if - else。
你最好把这本书从头到尾读一遍。
谢谢,会记住它的:)。你能告诉我,哪种最小止损有特定的货币对?例如EURAUD - 你不能为EURAUD设置低于100点的止损,而对于其他的?
https://book.mql4.com/ru/appendix/marketinfo
如何组成一个二进制数,例如7位数?然后如何(为了方便)将其转换为小数?