//+------------------------------------------------------------------+//| Check for close order conditions |//+------------------------------------------------------------------+void CheckForClose()
{
double ma;
//--- go trading only for first tiks of new barif(Volume[0]>1) return;
//--- get Moving Average
ma=iMA(NULL,0,MovingPeriod,MovingShift,MODE_SMA,PRICE_CLOSE,0);
//---for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderMagicNumber()!=MAGICMA || OrderSymbol()!=Symbol()) continue;
//--- check order type if(OrderType()==OP_BUY)
{
if(Open[1]>ma && Close[1]<ma)
{
if(!OrderClose(OrderTicket(),OrderLots(),Bid,3,White))
Print("OrderClose error ",GetLastError());
}
break;
}
if(OrderType()==OP_SELL)
{
if(Open[1]<ma && Close[1]>ma)
{
if(!OrderClose(OrderTicket(),OrderLots(),Ask,3,White))
Print("OrderClose error ",GetLastError());
}
break;
}
}
//---
}
一种新的艺术类型。
交易讽刺。
我喜欢它。
1.不需要C知识。Mql4是不同的功能
boopa26不浪费人们的时间
上面的代码看起来像我在浪费你的时间吗? 呃......可能不是 WHRoeder
这不是一件容易的事,但上面的代码可以关闭订单,但不明白。
Boopa26认为
static int last_index_inside_trade_pool = OrdersTotal()-1
while last_index_inside_trade_pool >=0 do code below. Do last_index_inside_trade_pool--
下面的代码找到订单,检查 订单,关闭订单,做GetLastError()。
虽然不明白
那你为什么只贴出 使用循环的代码?
循环的代码可以用不同的方式来做同样的事情。
没有循环,但结果是一样的。 Boopa26更喜欢用if条件,而不是for循环,while循环。
你认为你可以在不知道如何写代码的情况下写代码。函数是不相关的。
我知道如何做if conditions while cycles for cycles基本数学。这是一个好的开始,WHRoeder。为什么?因为有函数。Mql4确实做了C编程的例子* () ==等,但因为有函数而不一样。
什么开关顺序选择功能从0到1?
在订单总数大于0后,订单选择函数是否从0切换到1?
文件
"返回值
如果函数成功,它返回真,否则返回假。要获得错误信息,必须调用GetLastError() 函数。"
如果函数成功,它返回1?
我喜欢这个人:-)
你是只在这个论坛上写,还是有其他链接?
如果你是在舞台上做这个,我在哪里可以买到票?
只有这个论坛
EDDIE你对订单选择功能 有什么了解吗?
那你为什么只贴出 使用循环的代码?
你认为你可以在不知道如何写代码的情况下写代码。函数是不相关的。
你想知道为什么你的代码仍然不能工作?因为你仍然不知道 "基础知识",如果你遵循 "步骤1",学会正确地用 "C "编码,你就会更擅长用MQL编码(因为它类似于C和C++)!你的结果是什么?
你甚至不能理解 "函数"(第3步)!因为 "OrderSelect() "是什么意思?文档中明确指出,"OrderSelect()"返回的是布尔值,而什么时候开始返回的是整数?你甚至没有检查 "OrderClose() "的结果,也没有检查你的代码中的任何部分是否发生了运行时错误
你的结果。你的结局是 "烧焦的木炭",由于你拒绝接受我们的建议,你也浪费了我们的时间!