if (flag==1) { Symb="EURUSD"; OrderSend(Symb,...)///Открываем, переносим флаг во 2 состояние для открытия след ордера и flag=2; ///выходим тк больше мы ни чего не можем сделать return(0); }
if (flag==2) { Symb="AUDUSD"; OrderSend(Symb,...) flag=3; return(0); }
if (flag==3) { Symb="USDJPY"; OrderSend(Symb,...) flag=0;//Возвращаем флаг в начальное состояние.. return(0); } return(0);}
你能告诉我如何使EA同时为多个符号开立订单吗?>> 提前感谢!
这是不可能的,因为EA只能为一个符号开立订单,然后你必须等待交易(而且不一定成功,也不一定快),为其他订单释放交易流。
先生们,请给一个新来的人提供建议!我下载了教程MQl4BookRussian.chm(作者Sergey Kovalev),问题是用这种格式打印非常混乱。Probyby将这段文字复制到doc格式,图片消失。你知道教科书是否有适合打印的格式(用于在显示器上阅读,眼睛都累了)?
直接从网站上尝试在线版本的教科书--https://book.mql4.com/ru/。 而且你可以毫无问题地将其转移到文档中。
这是不可能的,因为EA只能在一个符号上开立一个订单,之后你必须等待交易操作通过(而且不一定成功,也不一定快),交易流将为其他订单释放。
对于交易流程,我明白了一切,但如何以最小的间隔在3种工具上连续进行开仓交易(根据顾问的算法,开仓应该在某一秒内同时对三种货币开始)?如果你不介意的话,你能不能贴出一个代码片段作为例子?我将非常感激!
int start()
{
if (OrdersTotal() == 0
&& TimeDayOfWeek(TimeCurrent()) == 5
&& TimeHour(TimeCurrent()) == 12
&& TimeMinute(TimeCurrent()) == 30
&& TimeSeconds(TimeCurrent()) >= 00)
{
Alert("Тра ляля");
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,0,0,"sell",999999,0,Red);
}
如果这是整个代码,它甚至不能编译。如果你用一个数字来代替Lot,EA就能正常工作。
我明白交易流程的一切,但如何使交易在3个符号上连续开盘,且间隔时间最小(根据EA的算法,开盘应该在某一秒内同时对三种货币开始)?如果你不介意的话,你能不能贴出一个代码片段作为例子?我将非常感激!
我想你只需要为不同的工具建立3个订单就可以了?为什么不做一个标志变量,例如
在全局变量中创建
int flag=0;
string Symb;
///////////////
进一步
int start()
{
if (условие открытия)
{flag=1;}
if (flag==1)
{
Symb="EURUSD";
OrderSend(Symb,...)///Открываем, переносим флаг во 2 состояние для открытия след ордера и
flag=2; ///выходим тк больше мы ни чего не можем сделать
return(0);
}
if (flag==2)
{
Symb="AUDUSD";
OrderSend(Symb,...)
flag=3;
return(0);
}
if (flag==3)
{
Symb="USDJPY";
OrderSend(Symb,...)
flag=0;//Возвращаем флаг в начальное состояние..
return(0);
}
return(0);}
如果能增加一个开放的检查,并在检查成功后才移动旗子,那也是很好的。
如果这是整个代码,它甚至不能编译。如果你用一个数字代替手数,专家顾问就能正常工作。
检查Lot的数据类型。它应该是双倍的。
因此,只是一目了然。我没有理解这些术语,但在第二个版本中,似乎没有交叉。
还有一件事 -- OrderSend函数返回一个int ticket,所以像这样检查是否成功是正确的。
在你的情况下,你需要检查是否有不正确的地方。
______
是的,我不知道其他人如何,但对我来说,"专家 "这个词听起来像是一种嘲弄。也许这就是为什么你这么久都没有回音。;)
你好!!!!!!!!!!!!!!
是的,无论你说什么........,不要叫它,所以不要叫它.....。尽管专家是专家(有知识的人,可以说是老师)的缩写。
我不关心......,我的意思是只有积极和善良的........。
但不要介意........
在这个话题的一开始,我就问了关于MA的问题。答案是非常聪明的。现在我又回到了这里。
一个想法出现了.....
我决定对交易条件进行一些调整。但它没有工作((((((((,我想把open_1和open_0(第一条的开盘价和第二条的开盘价)。
当我检查时,它给出了错误,我不得不返回到原始版本(我在上面给出了)。
正如有人向我解释的那样,open[1]是对名称为open、索引为[1]的数组单元的调用。所有这些都是好的......,但只需要在1(2,0)条上有一个开盘价。
给假人的提示.....)))))))).....
如何跟踪挂单的触发情况(例如,买入时)? 在历史记录中通过其ID搜索更好,还是有更短的选择?
你可以试试这个
OrderSelect(1, SELECT_BY_POS)
if(OrderOpenTime()!=0)
{
///необходимая операция
}
但这只是在你只有1个订单的情况下才有的选择!