while (d_mn_1>d_pl_1 && (d_mn_0-d_pl_0)>=2) //Пока это условие выполняется открывать только селл при таком условии (iRSI(NULL,0,rsi_period,PRICE_CLOSE,2)>0.7)&&(iRSI(NULL,0,rsi_period,PRICE_CLOSE,0)<0.7)) -какой оператор использовать и как его оформить? { OrderSend(Symbol(), OP_SELL, lots, NormalizeDouble(Bid, Digits), 3, /*Ask+10*Point*/0, /*Bid-10*Point*/0, "ADX sell", magic, 0, CLR_NONE); }
while (d_pl_1>d_mn_1 && (d_pl_0-d_mn_0)>=2) // Пока это условие выполняется открывать только Бай при таком условии (iRSI(NULL,0,rsi_period,PRICE_CLOSE,2)<0.3)&&(iRSI(NULL,0,rsi_period,PRICE_CLOSE,0)>0.3)) - какой оператор использовать и как его оформить? { OrderSend(Symbol(), OP_BUY, lots, NormalizeDouble(Ask, Digits), 3, /*Bid-10*Point*/0, /*Ask+10*Point*/0, "ADX buy", magic, 0, CLR_NONE);
while (d_mn_1>d_pl_1 && (d_mn_0-d_pl_0)>=2) //Пока это условие выполняется открывать только селл при таком условии (iRSI(NULL,0,rsi_period,PRICE_CLOSE,2)>0.7)&&(iRSI(NULL,0,rsi_period,PRICE_CLOSE,0)<0.7)) -какой оператор использовать и как его оформить? { OrderSend(Symbol(), OP_SELL, lots, NormalizeDouble(Bid, Digits), 3, /*Ask+10*Point*/0, /*Bid-10*Point*/0, "ADX sell", magic, 0, CLR_NONE); }
while (d_pl_1>d_mn_1 && (d_pl_0-d_mn_0)>=2) // Пока это условие выполняется открывать только Бай при таком условии (iRSI(NULL,0,rsi_period,PRICE_CLOSE,2)<0.3)&&(iRSI(NULL,0,rsi_period,PRICE_CLOSE,0)>0.3)) - какой оператор использовать и как его оформить? { OrderSend(Symbol(), OP_BUY, lots, NormalizeDouble(Ask, Digits), 3, /*Bid-10*Point*/0, /*Ask+10*Point*/0, "ADX buy", magic, 0, CLR_NONE);
帮助我理解这段代码。我不知道如何正确描述这种状况。
这里是EA的一个部分。
if(total<1)
{
while (d_mn_1>d_pl_1 && (d_mn_0-d_pl_0)>=2) //Пока это условие выполняется открывать только селл при таком условии (iRSI(NULL,0,rsi_period,PRICE_CLOSE,2)>0.7)&&(iRSI(NULL,0,rsi_period,PRICE_CLOSE,0)<0.7)) -какой оператор использовать и как его оформить?
{
OrderSend(Symbol(), OP_SELL, lots, NormalizeDouble(Bid, Digits), 3, /*Ask+10*Point*/0, /*Bid-10*Point*/0, "ADX sell", magic, 0, CLR_NONE);
}
while (d_pl_1>d_mn_1 && (d_pl_0-d_mn_0)>=2) // Пока это условие выполняется открывать только Бай при таком условии (iRSI(NULL,0,rsi_period,PRICE_CLOSE,2)<0.3)&&(iRSI(NULL,0,rsi_period,PRICE_CLOSE,0)>0.3)) - какой оператор использовать и как его оформить?
{
OrderSend(Symbol(), OP_BUY, lots, NormalizeDouble(Ask, Digits), 3, /*Bid-10*Point*/0, /*Ask+10*Point*/0, "ADX buy", magic, 0, CLR_NONE);
}
}
}
}
我明白,心理因素阻止了我......贪婪......害怕失去哪怕是300磅......。我应该怎么做?忘记真正的账户...
如果我改变我的心态呢? 不是 "以赢为目标",而是 "以不输为目标"。
帮助理解!
这个想法的本质是:当iMACD增加时--我们保持买入,一旦它开始减少--我们关闭买入并打开卖出。使用最近的三个值进行比较,不包括当前值。
该代码有一个问题:它在iMACD值+-0时开出多个订单,正如我所看到的。Normalizedouble() 并没有帮助。
以下是代码。
帮助我理解这段代码。我不知道如何正确描述这种状况。
这里是专家顾问的一个片断。
total=OrdersTotal();
if(total<1)
{
while (d_mn_1>d_pl_1 && (d_mn_0-d_pl_0)>=2) //Пока это условие выполняется открывать только селл при таком условии (iRSI(NULL,0,rsi_period,PRICE_CLOSE,2)>0.7)&&(iRSI(NULL,0,rsi_period,PRICE_CLOSE,0)<0.7)) -какой оператор использовать и как его оформить?
{
OrderSend(Symbol(), OP_SELL, lots, NormalizeDouble(Bid, Digits), 3, /*Ask+10*Point*/0, /*Bid-10*Point*/0, "ADX sell", magic, 0, CLR_NONE);
}
while (d_pl_1>d_mn_1 && (d_pl_0-d_mn_0)>=2) // Пока это условие выполняется открывать только Бай при таком условии (iRSI(NULL,0,rsi_period,PRICE_CLOSE,2)<0.3)&&(iRSI(NULL,0,rsi_period,PRICE_CLOSE,0)>0.3)) - какой оператор использовать и как его оформить?
{
OrderSend(Symbol(), OP_BUY, lots, NormalizeDouble(Ask, Digits), 3, /*Bid-10*Point*/0, /*Ask+10*Point*/0, "ADX buy", magic, 0, CLR_NONE);
}
}
}
}
它不是这样工作的吗?
没有通过如果不工作。
应该是只要条件(d_mn_1>d_pl_1 && (d_mn_0-d_pl_0)>=2是正确的,只开卖单,只要iRSI(NULL,0,rsi_period,PRICE_CLOSE,2)>0.7 && iRSI(NULL,0,rsi_period,PRICE_CLOSE,0<0.7)
反之亦然。
能否通过while或bool来写?我在编程方面完全处于紧缩状态。我理解逻辑链,但我的手很慢,无法将其转化为代码。
没有通过如果不工作。
应该是只要条件(d_mn_1>d_pl_1 && (d_mn_0-d_pl_0)>=2是正确的,只开卖单,只要iRSI(NULL,0,rsi_period,PRICE_CLOSE,2)>0.7 && iRSI(NULL,0,rsi_period,PRICE_CLOSE,0<0.7)
反之亦然。
可以通过while或bool来完成吗?我在编程方面完全处于紧缩状态。我理解逻辑链,但我的手很慢,无法将其转化为代码。
你好!我不想(有时也会)被StopOut抓住。我决定用一个值来限制这批货,这样就不会在最坏的情况下抓住StopOut。经历了很长一段时间的试验和错误。也许有人有办法解决?
输入数据。
- 货币对 - 不一定是欧元兑美元
- 价格(买入/卖出价格)
- 指定的止损点(假定最坏的情况是,即使达到止损水平,也不会捕捉到止损点)。
- 设置地段价值
- 所有其他数值应使用MT4功能获得:1手的大小,杠杆,交叉率。
最好能有一个代码。
理论上我明白我需要的是:余额减去StopLoss水平的可能损失除以保证金。而且这个值应该大于StopOut(按百分比计算)。
帮助理解!
这个想法的本质是:当iMACD增加时,我们保持买入,一旦它开始下降,我们就关闭买入并打开卖出。使用最近的三个值进行比较,不包括当前值。
该代码有一个问题:它在iMACD值+-0时开出多个订单,正如我所看到的。Normalizedouble()并没有帮助。
以下是代码。
也许这就是问题所在
打开,直到钱用完为止?还是每个柱子打开一次?还是每个刻度打开一次?
每一个新棒 都要检查该条件。在这种情况下,时间框架是每小时。这一情况在每小时开始时被检查。
也许这就是问题所在
不......我按照你的建议做了--同样的事情仍然存在。
另外,我还修改了代码,按条件分别划分为开场和结尾区块。这都是一样的。我不知道现在该怎么做。
这是测试者的截图,预告片中测试者的专家顾问。