int start()
{
double Price=iOpen (Symbol (),PERIOD_M5,0)+300*Point;
double SL=NormalizeDouble (Price-300*Point, Digits);
double TP=NormalizeDouble (Price+150*Point, Digits);
int last_order_bar = 0;
int ot = OrdersTotal();
if (ot>0) //если есть ордера в рынке
{
if (OrderSelect (ot-1,SELECT_BY_POS)) //выбрали последний ордерif (OrderType ()==OP_BUY || OrderType ()==OP_SELL) //проверили тип
last_order_bar = iBarShift (Symbol (),PERIOD_M5,OrderOpenTime ()); //запомнили, на каком 5-минутном баре открыт последний ордер (если он есть)
}
if (OrdesTotal()==0 || last_order_bar>0) //если ордеров нет либо последний открыт не на текущем бареif (Bid>=Price) //если текущая цена доползла до цены открытияint Ticket=OrderSend(Symbol(),OP_BUY,0.1,Ask,3,SL,TP );
}
非常感谢您的帮助。
但在测试器中,每分钟 的蜡烛都会打开交易。信息。在这个链接中http://clip2net.com/s/2T98Y
我想让它在5分钟 的蜡烛上开一个订单,但不是在每个 蜡烛上。
而且只有当当前的 五分钟蜡烛图>或=30点 (从开盘价到其最大值)时,才会出现。
也就是说,在零点=当前五分钟期间的开盘价的第三十个点上开一个市场订单。如果当前五分钟的蜡烛图从开盘价到最高价不到30个点,那么就不要开市场订单。
只要把EA放到五分钟的图表上,就会像你写的那样。
或者将代码中的Open[0]替换为iOpen(Symbol(), PERIOD_M5, 0),那么它将在任何图表中工作。
你的代码中的第二个条件是,当前5分钟的收盘价>=订单的开盘价。
也就是说,不会有很多订单,我在Excel中计算过,自1999年以来--双向的欧元订单比3000多一点。
我们进入下一个五分钟,如果它,即当前五分钟>或= 30点,我们在第三十点开盘,如果更少,我们进入下一个五分钟......以此类推,直到图表的最后。
但问题 是,据粗略估计,大多数>或=30点 的5分钟计划, 飞过15点的可能性要比被30点止损关闭的可能性大得多。
你有一个条件-- 如果没有未结订单
但在我的系统中,可以连续形成两个具有上述参数的 五分钟时段 , 如果前一个五分钟时段的订单没有被关闭,那么在第二个五分钟时段就不会有订单被打开。
我需要在每5分钟开一个订单,参数如上所述,无论交易中是否有任何订单。
好吧,那就让我们改变条件。所以它就出来了。
我对顾问、物品感兴趣--我自己画蜡烛吗?
你可以理解这个原则。
你看了测试器中该功能的测试EA吗?无论有多少个订单--两个或二十个,它都能准确地以最大利润关闭最大损失。
只要把你的EA留在五分钟的图表上,它就会像你写的那样。
或者用iOpen(Symbol(), PERIOD_M5, 0)替换代码中的Open[0],那么它将在任何图表中工作。
不,Close[0]是第0条的当前收盘价,也就是说,只是当前价格。你可以直接写Bid,结果是一样的。好吧,那我们就改变一下条件。它出来了。
非常感谢您的帮助,没关系的。但......
1.在一些五分钟内,有超过1个订单打开。
2.有些订单在止损单上被关闭,其价格与代码中规定的价格不同。
我在所附文件中标记了订单数据。
只要把专家顾问扔到5分钟图上,就会像你写的那样。
或者用iOpen(Symbol(), PERIOD_M5, 0)替换代码中的Open[0],那么它将在任何图表中工作。
不,Close[0]是第0条的当前收盘价,也就是说,只是当前价格。你可以直接写Bid,结果是一样的。好吧,那我们就改变一下条件。它出来了。
非常感谢你的帮助,没关系的。但......
1.在一些五分钟内,有超过1个订单打开。
2.一些订单被止损单关闭,其价格与代码中规定的价格不同。
有关上述订单的信息可在此链接中找到
http://clip2net.com/s/2Tfym
对不起.请帮助.我正在复制一个有一些变化的程序.编译器给我一个错误:'(' -函数 定义意外 F:\forex\MetaTrader NordFX\experts\ia.mq4 (305, 16) 。
这是什么意思?
- 我试图删除这块程序--它也说了以下的话。
- 试着不改变这部分 - 结果是一样的(同样的错误)。
上的本地程序编译成功。
这个原则可以理解。
谢谢你!
对不起,请帮助我。我正在复制一个有一些变化的程序。编译器给我的错误:'(' - 函数定义意外 F:\forex\MetaTrader NordFX\experts\ia.mq4 (305, 16) 。
这是什么意思?
- 我试图删除这块程序--它也说了以下的话。
- 试着不改变这部分 - 结果是一样的(同样的错误)。
上的本地程序编译成功。
在这里
该错误表明你在另一个函数中定义了一个函数。所有的功能都必须全局定义
需要一些帮助。
寻找任何知道如何在某个时间点进行截图的函数或脚本,例如在打开/关闭一个姿势时。
当我不需要的时候,偶尔也会遇到一个,但现在我找不到了。
帮助!需要一些帮助。
寻找任何知道如何在某个时间点进行截图的函数或脚本,例如在打开/关闭一个姿势时。
当我不需要的时候,我偶尔会遇到一个,但现在我找不到了。
帮助!