string Currency[4] = {"GBPUSD","EURUSD","USDCHF","USDJPY"}; //могу ошибиться в части правильности записи присвоения значений, но проверить легко по Справочникуint ATRHandle[4];
//+------------------------------------------------------------------+//| Expert initialization function |//+------------------------------------------------------------------+intOnInit()
{
for(int c=0;c<4;c++) SymbolSelect(Currency[с],true);
for(int c=0;c<4;c++) ATRHandle[с] = iATR(Currency[с],PERIOD_M1,1);
return(0);
}
这是专家本人--清理了不必要的东西--有很多的抨击:)
我如何关闭一个订单?
我是这样打开它的。
mrequest.action = TRADE_ACTION_DEAL; // 立即执行
mrequest.price = NormalizeDouble(Ask,_Digits); // last Ask price
mrequest.sl = NormalizeDouble(Ask - 10000*_Point,_Digits); // 止损
要求。tp = 0; // 获利
mrequest.symbol = _Symbol; // 符号
要求。volume = Lots; // 交易的手数
要求。magic = 1; // Magic Number
mrequest.type = ORDER_TYPE_BUY; // 买入订单
mrequest.type_filling = ORDER_FILLING_FOK; //订单类型- 全部或没有
要求。偏差=100; //与当前价格相比的滑移量
OrderSend(mrequest,mresult)。
问题是我们有一个以上的未平仓订单,我们需要关闭一个选择性的订单。
问题是没有一个订单,而是有几个,我们需要选择性地关闭...
1.正确插入代码。
2.如果在一个方向上开了几个订单,结果就是一个总的头寸。
3.要关闭一个未平仓的头寸,你应该发出相反方向的订单,其总量等于要关闭的头寸的数量。
4.如果有必要只关闭一部分头寸,那么就有必要暴露出具有相应总量的相反方向的订单。
1.正确插入代码。
2.如果几个订单在同一方向开仓,结果就是一个总的头寸。
3.要关闭一个未平仓的头寸,你应该发出相反方向的订单,这些订单的总量等于要关闭的头寸的数量。
4.如果只有部分头寸需要平仓,那么就应该用相应的总量下相反的订单。
好的,谢谢。只是现在又出现了一个问题--平仓单并不总是平仓......。
叶德尔金,雷舍托夫。
你好。
从一个指标中提取几对数据的最简单方法是什么?
提前感谢。这就是你的意思吗?
你是说这个?
你好。
当然不是。
如果有一只以上的火鸡,你必须为每只火鸡做一百次,因为有很多对吃。
一个处理程序,以便所有的对都被使用。
所以你想有一个手柄,但iATR 指标对不同的字符起作用?
从iATR 指标的描述中,你可以看到它被设计为只与一个符号一起工作。因此,要处理4个字符,你需要运行4份iATR 指标。反过来,指标句柄是 访问特定指标副本的值所 必需的 ,如果你正在运行4个指标副本,你将不得不在某个地方存储相应的句柄。
如果只使用一个手柄的问题是本金,我们将不得不重写iATR 指标,使其同时与几个符号一起工作,有相应数量的值数组,等等。那么就有可能使用一个手柄
并用它来寻址到myATR的这个或那个指标缓冲区。
你也可以像这样写下来(示意图)。