for(int i=0; i<OrdersTotal(); i++){if(!(OrderSelect( i, SELECT_BY_POS, MODE_HISTORY )))continue;//выбираем из истории счетаif(OrderSymbol()!=Symbol())continue;if(OrderMagicNumber()== Magic){
позиции =true;}}//Открытие позиции:bool Open_Buy(){bool res=false;if( условие_1){if( советник еще не открывал позиций с Магическим номером){
res=true;}}else{if( условие_1){if( условие_2 опирается на данные прошлого ордера){
res=true;}}}return( res);}
//==================Закрытие позиций ============================//----------------------------------------------------------------------for(int v=0; v<OrdersTotal(); v++){if(OrderSelect( v, SELECT_BY_POS, MODE_TRADES)){if(OrderSymbol()==Symbol()&&OrderMagicNumber()== Magic){//----------------------------------------------------- if(OrderType()==OP_BUY){// если открыта бай-позиция if( вот здесь вставляй свои условия закрытия){OrderClose(OrderTicket(),OrderLots(),Bid,3,Вlack);// закрываем позицию}}//--------------------------------------------------------if(OrderType()==OP_SELL){// если открыта селл-позиция if( вот здесь вставляй свои условия закрытия){OrderClose(OrderTicket(),OrderLots(),Ask,3,Yellow);// закрываем позицию}}//------------------------------------------------------- }// Symbol() }// select}//total//------------конец блока закрытия позиций-----------------
https://docs.mql4.com/ru/array/ArrayResize
是的,确实如此。看了一下,但没有看到。
谢谢。(笑)。
我今天放慢了速度。得为周末休息了。
那是差不多的 --
谢谢你!!!。我将使用....
DDFedor
Rid
谢谢你。
所有这些,代码没有工作,做了所有的行动,在2个蜡烛。不得不学习的位置已经有更多的不打开...因为它在所有打开,我可以所有的存款使用((Rid看看也许你需要添加什么...将非常感激
帮助。我想要一个能在夜间交易的EA。我正在编写代码
int start()
{
string Symb;
Symb=Symbol();
string Vremya;
Vremya=TimeToStr(TimeLocal(),TIME_MINUTES);
if(Vremya > 23:00 || Vremya < 06:00 )
{
// тут торговые функции
}
}
它产生了一个错误
'||' - 条件不能是一个字符串
而如果将条件缩短为
如果(Vremya > 23:00)
它将发挥作用。
而如果去到
如果(Vremya < 06:00 )
它不会工作。
我不明白什么是错的。你能告诉我如何设置时间吗?
Rig Rig反正也没有用......但我应该知道我有一个姿势,不要再打开它......但我为我得到的整个存款打开了它。
是的,确实....
我忘了在ORDERSEND fi中设置magik。
现在工作正常了。已检查。市场上不能有超过两个不同方向的交易,也不能有超过一个单向的交易。
如果不需要任何类型的交易,在f-ki NumberOfPositions(c)中需要用-1(减一)来代替交易的类型。
请告诉我iTime 功能显示什么。
那10位数的胡言乱语是什么?秒钟?
你如何将它们翻译成年-月-日-时-分?
>> 像这样:只需设置条形移位,得到默认的时间和日期(如果时间=1或真,你只得到时间)。
非常方便的功能,我推荐它。
我试图调整第二层,但没有成功。
我试图这样做,但它会在测试后立即打开和关闭一个订单。
明白了。为了确定历史上是否有职位,你可以这样做。
但这样你的代码就只能在测试器中工作。否则,你将不得不在每次打开EA在线时改变魔力。
没错,这正是我们所需要的!
请告知如何在这个网格中正确插入这个代码。
(如果我直接放,测试器就会在第一个位置的开口处停止)
我试图调整第二层,但没有成功。
这似乎是很合理的,但在测试中,它同时打开和覆盖订单
我在这里的时候处理过平仓的问题------。
https://www.mql5.com/ru/forum/105913
这个区块必须插入START函数中,也许在最开始,就在计算完Ema_1,Ema_2,Ema_3之后。
而且,很明显,有必要让顾问通过PRICES OPEN来工作,否则MA交叉将不断地在几乎每个tick上关闭未结头寸。
而你所做的方式--将无法正确地在线工作,因为EA将关闭所有的头寸,即使是由另一个EA或手动打开的头寸。
但我已经写过如何使它变得更简单。在开仓时,不需要NumberOfPositions(NULL,OP_BUY,Magic),也不需要NumberOfPositions(NULL,OP_SELL,Magic),只要设置
NumberOfPositions(NULL,-1,Magic)
然后在市场上一直不会有超过一个位置。没有任何闭合块。