//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 19.02.2008 |//| Описание : Возвращает номер бара закрытия последней позиции или -1. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" или NULL - текущий символ) |//| tf - таймфрейм ( 0 - текущий таймфрейм) |//| op - операция ( -1 - любая позиция) |//| mn - MagicNumber ( -1 - любой магик) |//+----------------------------------------------------------------------------+int NumberOfBarCloseLastPos(string sy="0", int tf=0, int op=-1, int mn=-1) {
datetime t=0;
int i, k=OrdersHistoryTotal();
if (sy=="" || sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_HISTORY)) {
if (OrderSymbol()==sy) {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op<0 || OrderType()==op) {
if (mn<0 || OrderMagicNumber()==mn) {
if (t<OrderCloseTime()) t=OrderCloseTime();
}
}
}
}
}
}
return(iBarShift(sy, tf, t, True));
}
//+----------------------------------------------------------------------------+//| Автор : Ким Игорь В. aka KimIV, http://www.kimiv.ru |//+----------------------------------------------------------------------------+//| Версия : 19.02.2008 |//| Описание : Возвращает номер бара открытия последней позиции или -1. |//+----------------------------------------------------------------------------+//| Параметры: |//| sy - наименование инструмента ("" или NULL - текущий символ) |//| tf - таймфрейм ( 0 - текущий таймфрейм) |//| op - операция ( -1 - любая позиция) |//| mn - MagicNumber ( -1 - любой магик) |//+----------------------------------------------------------------------------+int NumberOfBarOpenLastPos(string sy="0", int tf=0, int op=-1, int mn=-1) {
datetime t=0;
int i, k=OrdersTotal();
if (sy=="" || sy=="0") sy=Symbol();
for (i=0; i<k; i++) {
if (OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) {
if (OrderSymbol()==sy) {
if (OrderType()==OP_BUY || OrderType()==OP_SELL) {
if (op<0 || OrderType()==op) {
if (mn<0 || OrderMagicNumber()==mn) {
if (t<OrderOpenTime()) t=OrderOpenTime();
}
}
}
}
}
}
return(iBarShift(sy, tf, t, True));
}
大家好!
请给我一个命令,让机器人在每根蜡烛上不超过1个订单。
即使他在这支蜡烛上采取了他的措施--不在同一蜡烛上开出下一个订单。
现在,它出来了,如果指标的条件得到满足 - 打开一个交易。
当采取的交易被关闭时,它立即在同一蜡烛图上打开一个新的交易,这里对我来说已经是不必要的,并产生了问题。
我觉得有必要给出一些反馈。
它需要一个严格的,所以1支蜡烛--1个交易。
事先非常感谢!
大家好!
请给我一个命令,让机器人在每根蜡烛上不超过1个订单。
即使他在这支蜡烛上采取了他的措施--不在同一蜡烛上开出下一个订单。
现在,它出来了,如果指标的条件得到满足 - 打开一个交易。
当采取的交易被关闭时,它立即在同一蜡烛图上打开一个新的交易,这里对我来说已经是不必要的,并产生了问题。
我觉得有必要给出一些反馈。
它需要一个严格的,所以1支蜡烛--1个交易。
提前感谢!
你也可以使用旗帜。
声明一个静态bool变量或一个全局变量,让它成为flag。订单打开--标志=真,一个新的蜡烛 图打开--标志=假,并将此标志添加到订单打开的条件中。
你也可以使用一个标志。
声明静态bool变量或全局级别的变量,让它成为标志。订单打开--标志=真,一个新的蜡烛 打开--标志=假,并将此标志添加到订单打开条件中。
该标志应保存在全局终端中,并在其重新启动时恢复。
这取决于交易是在什么时期,以及在一个条形图内重新启动终端的能力,以打开一个订单并重新启动终端。
我不喜欢GV,并试图不使用它。当你启动EA时,无论如何你都应该收集所有关于未结订单的信息,所以为什么不在启动时恢复标志的值?这是一种选择。第二种变体是,标志的初始值禁止开仓,只有下一个条形图会给予许可。因此,即使我们在当前条形图上打开并重新启动了EA,该标志还是会禁止我们在下一个条形图之前打开订单。
如果你以这种微妙的方式给出这样的建议,你将不必考虑任何问题。所以问题的数量不会增加...为什么要自己决定一些事情...在论坛上询问,你会得到一个工作版本。而剩下的唯一事情就是将产品投放市场......
这取决于交易是在什么时期,以及在一个条形图内重新启动终端的能力,以打开一个订单并重新启动终端。
我不喜欢GV,并试图不使用它。当你启动EA时,无论如何你都应该收集所有关于未结订单的信息,所以为什么不在启动时恢复标志的值?这是一种选择。第二种变体是,标志的初始值禁止开仓,只有下一个条形图会给予许可。因此,即使我们在当前条上有一个新的订单,并重新启动EA,该标志仍将禁止打开订单,直到下一个条。
仅仅通过提供如此微妙的建议,我们就不必考虑任何问题。因此,问题的数量可能会增加。为什么要自己决定一些事情...在论坛上询问,你会得到一个工作版本。而剩下的唯一事情就是将产品投放市场......
:)
这也是我们喜欢不同女人的原因。
这有什么区别,是旗帜还是开仓时间?无论你如何旋转它,你仍然必须检查一些东西......。你好!你能告诉我如何在盈利的订单之后,返回最后亏损的订单数量吗?
这是我的代码,有什么问题吗?
int GetProfitLoss()//关闭订单的损失(最后损失的订单数量)。
{
int Loss = 0。
datetime lastCloseTime = 0;
int cnt = OrdersHistoryTotal();
for(int i=0; i < cnt; i++)
{
如果(OrderSelect(i, SELECT_BY_POS, MODE_HISTORY))
{
如果(OrderSymbol() == Symbol() && OrderMagicNumber() == OrderId && lastCloseTime < OrderCloseTime()
{
lastCloseTime = OrderCloseTime()。
}
如果(OrderProfit()<0)
{
损失++。
}
如果(OrderProfit()>0)
{
break; // 在遇到第一个有利可图的情况下退出循环 }
}
}
}
}
return(Loss)。
}
大家好!
请给我一个命令,让机器人在每根蜡烛上不超过1个订单。
即使他在这支蜡烛上采取了他的措施--不在同一蜡烛上开出下一个订单。
现在,它出来了,如果指标的条件得到满足 - 打开一个交易。
当采取的交易被关闭时,它立即在同一蜡烛图上打开一个新的交易,这里对我来说已经是不必要的,并产生了问题。
我觉得有必要给出一些反馈。
它需要一个严格的,所以1支蜡烛--1个交易。
提前感谢!
函数NumberOfBarCloseLastPos()。
该函数返回最后一个要关闭的位置的小节编号,或-1。要考虑的位置的选择是由外部参数设定的。
NumberOfBarOpenLastPos()函数。
该函数返回最后打开的位置的条数或-1。要考虑的职位的选择是由外部参数确定的。
然后使用这些函数检查你需要的条件。
请帮助。
我需要在我的机器人中添加以下功能。
在开启交易后,在40秒内如果利润超过15点,交易就会立即关闭,如果少于15点,止盈就会移至15点的利润水平。
预先感谢你。
NumberOfBarCloseLastPos()函数。
该函数返回最后一个位置的收盘号码或-1。要考虑的位置的选择是由外部参数定义的。
NumberOfBarOpenLastPos()函数。
该函数返回最后打开的位置的条数或-1。要考虑的职位的选择是由外部参数确定的。
然后使用这些函数来检查你需要的条件。
非常感谢您!
我将研究一下!!!。