OrderSend(Symbol(),OP_BUY,Lots,Ask,4,0,0,"",0,0,Green);
for(cnt=0;cnt<total;cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()==OP_SELL) // long position is opened
{
OrderClose(OrderTicket(),OrderLots(),Ask,4,Violet); // close position
}
}
专业人士不要路过,需要你的帮助。机器人正在打开卖出头寸,那么这个头寸应该在下面被关闭,请看代码,卖出头寸应该被关闭,买入头寸应该被打开,开仓 数量应该是1(OrdersTotal())。问题是,如何制作一个类似于订单执行队列的东西:首先卖出的头寸应该关闭,然后买入的头寸应该打开,并且未结头寸的数量应该等于1?
我的意思是,它只 被设置为一个缓冲区,而不是一个外部变量。
所以使用这个指标_colorN
我的意思是,它只 被设置为一个缓冲区,而不是一个外部变量。
你不能在MQL中这样做。但如果是非常非常有必要的话,当然也可以做)))。
你甚至不知道你需要什么...
我相信Eddy的需求可以通过MQL来解决。
你甚至不知道你需要什么...
我确信艾迪的需求是由MQL解决的
不,我知道了......他需要在指标代码中以编程方式从指标缓冲区获得绘图颜色(对吧,艾迪?)据我所知,这在MQL中是不可能的。
只需使用参数 indicator_colorN。 你可以说这是同一个变量。
也许。 ,只需使用参数 indicator_colorN。这可以说是同一个变量。
noooooo。
假设我们有一个画线 的指标。假设我们想用这个指标画一个圆。但我们想在指标线为绿色时使其为绿色,如果为红色则为红色。
各位程序员,请告知如何正确关闭所有订单。以下是要解决的问题和建议做的事情。总而言之,除了关闭订单和设置旗帜禁止交易外,一切都能正常工作。
我相信你们中间有经验丰富的程序员。请帮助我在我的专家顾问中写出以下条件:
1) С+=订单(1)的利润+订单(2)的利润+...+订单(n)的利润-当前时间内所有未结订单的总利润。
2) C-=(c+)订单(1)的损失+订单(2)的损失+...+订单(n)的损失 - 当前时刻所有未结订单的损失之和。
3) X=(c+)/(c-)--当前盈亏比
4) 如果权益(S)乘以盈亏比(X)高于指定的设定值(K),你就可以交易了。(如果S*X>K,OK)
5)如果净值(S)乘以盈亏(X)比率小于定义的目标(K),那么当前报价的所有未结订单将被关闭,专家顾问将被禁用,直到它再次被手动启用。(S*X<K,关闭所有订单并关闭)
在我看来,这将是一个很好的保护措施,防止亏损。
它看起来像这样。让我们创建两个计算盈亏的函数:
double CalculateProfitTotal()
{
double Result = 0;
for(int i = 0; i < OrdersTotal(); i++)
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)
if(OrderProfit() > 0)
Result = Result + OrderProfit();
return(Result);
}
double CalculateLossTotal()
{
double Result = 0;
for(int i = 0; i < OrdersTotal(); i++)
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES))
if(OrderProfit() < 0)
Result = Result + MathAbs(OrderProfit() ) ;
return(Result);
}
在start()函数中,编写你的条件。
例如:
X = CalculateProfitTotal() / CalculateLossTotal();
if(AccountEquity() * X < K)
{
//这里我们关闭所有订单,
//设置禁止交易的标志
return(0);
}
假设我们想画一个圆作为指示器。但我们想让它变成绿色,如果指标线是绿色的。
所以我想创建一个蓝色的对象)
sergeev, 所以indicator_color1 是一个颜色变量?