externint MagicNumber=555;
//---if (OrdersTotal()>0) // Есть ли отложенные ордера или открытые позиции
{ for (i=OrdersTotal()-1; i>=0; i--) // Перебираем ордера
{ if (OrderSelect(i,SELECT_BY_POS,MODE_TRADES)) // Oрдер выбирается среди открытых и отложенных ордеров
{ if (OrderSymbol()!=Symbol()) continue; // Если торговый символ не тот, на котором работает эксперт - игнорируетсяif (OrderMagicNumber()!=MagicNumber) continue; // Если магик номер не тот, что надо - игнорируетсяif (OrderOpenTime()>=iTime(NULL,PERIOD_D1,0)) // Если время открытия ордера больше или равен началу открытия данной свечи,// то дальший код эксперта не работает. Вместо PERIOD_D1 можно вставить любой другой период.return(0);
} } }
昨天我很着急,不得不去。我在那一刻写的问题不是我想要的问题。
实际上,我指的是专家顾问,它在给定的条件下,发送一堆订单(一个网格)。我没有看到在这样的专家顾问系统中,点差、止损、高于(低于Asc或Bid)的价格位置,以及其他任何东西都没有被检查。我打算自己写,给大家看。
为什么还要拿一些戈壁专家来做例子?至少它们只是为测试者服务的,最多是用歪手写的,如上所述......
为什么要拿一些悲惨的专家来做例子呢?至少它们只是为测试者服务的,最多是用歪手写的,如上所述......
好吧,我明白如何实现它,但决定看看别人是如何做的。
伙计们,我遇到了一个非常可怕的问题!当我保存图画时,我的图画不会向左移动!"移位图 "功能已被激活!我怎样才能解决这个问题?
你好!
我希望我的专家顾问每天开出的交易不超过一个。你能告诉我如何做到这一点吗?
你好,我研究mql4已经有一段时间了,也许有经验的程序员可以帮忙。我想知道如何在订单达到-30或-40时将其锁定。 我必须为这个脚本添加一些属性,以便在订单进入负值时立即锁定。
void start()
{
double StopLoss;
double Lots=0;
for(int i=0;i<OrdersTotal(); i++)
{
if(!OrderSelect(i,SELECT_BY_POS))
continue;
if(OrderSymbol()!=符号())
继续;
if(OrderType()==OP_BUY)
Lots+=OrderLots();
if(OrderType()==OP_SELL)
Lots-=OrderLots();
}
if(Lots>0)
OrderSend(Symbol(),OP_SELL,Lots,Bid,3,Ask+StopLoss*Point,0,NULL,Red) 。
if(Lots<0)
OrderSend(Symbol(),OP_BUY,-(Lots),Ask,3,Bid-StopLoss*Point,0,NULL,Blue) 。
你好!
我希望我的专家顾问每天开出的交易不超过一个。你能告诉我如何做到这一点吗?
伙计们,我遇到了一个非常可怕的问题!当我保存图画时,我的图画不会向左移动!"移位图 "功能已被激活!我怎样才能解决这个问题?
好吧,我明白如何实施它,但我决定看看别人是如何做的。
谢谢你的提示!
只有在建议的变体中,专家不工作))))下面是我得到的一个工作变体。
如果(OrdersTotal()==0) // 如果没有未结头寸
{ for (int i=OrdersHistoryTotal()-1; i>=0; i--) // 从账户历史列表中搜索订单。
{ 如果(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) //该订单在已关闭的订单中被选中。
{
if (OrderCloseTime()>=iTime(NULL,PERIOD_D1,0)) // 如果订单收盘时间大于或等于当前蜡烛的开盘时间。
// 专家顾问不工作。可以插入任何其他周期来代替PERIOD_D1。
返回(-1)。
} }}
你为什么还要拿一些窝囊废来做例子呢?最低限度,它们是专门为测试人员设计的,最高限度,它们是用弯曲的手写的,正如上面所说的......
用我的方式写的。我没有特别优化代码,只是写了它,让它发挥作用,并展示了逻辑。
这一步 是订单网格的间距。
我的问题是这样的。我的逻辑是否正确?有什么方法可以改进代码,使其工作得更快?从性能的角度来看...
我还有一个想法,我们可能需要在每条信息之后做停顿。好吧,总之这些观点对我来说非常有趣。