已经尝试了所有的方法,仍然出现错误 2016.04.15 13:17:24 Core 1 2016.03.29 09:00:00 failed close position #64 buy 0.81 EURUSD by position #0 [ Invalid request]
哪些字段要填,哪些不填?我想,开的头寸是短线还是长线并不重要。
//+------------------------------------------------------------------+//| Закрытие позиции по типу |//+------------------------------------------------------------------+void PositionClose(double lot, int P_type,long id)
{
Print("Вход в функцию Закрытие позиции по типу !");
ZeroMemory(mrequest); ZeroMemory(mresult); // обнуляем значения mrequest, mresult//--- Получить текущее значение котировки в структуру типа MqlTickif(!SymbolInfoTick(_Symbol,latest_price))
{
Alert("Ошибка получения последних котировок - ошибка:",GetLastError(),"!!");
return;
}
//--- формируем торговый запрос
mrequest.action = TRADE_ACTION_CLOSE_BY; // закрыть позицию встречной
mrequest.order = id;
// mrequest.action = TRADE_ACTION_DEAL; // немедленное исполнение// mrequest.price = NormalizeDouble(latest_price.bid,_Digits); // последняя цена ask// mrequest.sl = 0; // Stop Loss// mrequest.tp = 0; // Take Profit
mrequest.symbol = _Symbol; // символ
mrequest.volume = lot; // количество лотов для торговли// mrequest.magic = MAGIC; // Magic Number// if (P_type == 0) mrequest.type = ORDER_TYPE_SELL; // проверяем тип позиции// if (P_type == 1) mrequest.type = ORDER_TYPE_BUY;
mrequest.type = ORDER_TYPE_CLOSE_BY;
mrequest.type_filling = ORDER_FILLING_FOK; // тип исполнения ордера - все или ничего
mrequest.deviation=10; // проскальзывание от текущей ценыif( OrderSend(mrequest,mresult)>0) // если значение отосланного ордера не ноль, то
{ if(mresult.retcode==10009 || mresult.retcode==10008)
Print(" позиция закрыта !");
} else {
Print(ResultRetcodeDescription(mresult.retcode));
return;
}
}
ES 009:12:21.189 Trade 2016.04.1400:00:30 instant sell 0.01 EURUSD at 1.12728 (1.12728 / 1.12736 / 1.12728)
IL 009:12:21.189 Trades 2016.04.1400:00:30 deal #2 sell 0.01 EURUSD at 1.12728 done (based on order #2)
OP 009:12:21.189 Trade 2016.04.1400:00:30 deal performed [#2 sell 0.01 EURUSD at 1.12728]
NF 009:12:21.189 Trade 2016.04.1400:00:30 order performed sell 0.01 at 1.12728 [#2 sell 0.01 EURUSD at 1.12728]
GJ 009:12:21.192 TestEA (EURUSD,H1) 2016.04.1400:00:30 CTrade::OrderSend: instant sell 0.01 EURUSD at 1.12728 [done at 1.12728]
KH 009:12:21.192 Trade 2016.04.1400:00:31 instant buy 0.02 EURUSD at 1.12736 (1.12728 / 1.12736 / 1.12728)
OD 009:12:21.192 Trades 2016.04.1400:00:31 deal #3 buy 0.02 EURUSD at 1.12736 done (based on order #3)
GI 009:12:21.193 Trade 2016.04.1400:00:31 deal performed [#3 buy 0.02 EURUSD at 1.12736]
LM 009:12:21.193 Trade 2016.04.1400:00:31 order performed buy 0.02 at 1.12736 [#3 buy 0.02 EURUSD at 1.12736]
NS 009:12:21.193 TestEA (EURUSD,H1) 2016.04.1400:00:31 CTrade::OrderSend: instant buy 0.02 EURUSD at 1.12736 [done at 1.12736]
OP 009:12:21.193 TestEA (EURUSD,H1) 2016.04.1400:00:32 Вход в функцию Закрытие позиции по типу !
GI 009:12:21.193 Trade 2016.04.1400:00:32 close position #2 sell 0.01 EURUSD by position #3 buy 0.02 EURUSD (1.12728 / 1.12736 / 1.12728)
OM 009:12:21.193 Trades 2016.04.1400:00:32 deal #4 buy 0.01 EURUSD at 1.12736 done (based on order #4)
RK 009:12:21.193 Trades 2016.04.1400:00:32 deal #5 sell 0.01 EURUSD at 1.12728 done (based on order #4)
EF 009:12:21.193 TestEA (EURUSD,H1) 2016.04.1400:00:32 CTrade::OrderSend: unknown action 10 [done]
EI 009:12:21.423 Trade 2016.04.1423:59:59 position closed due end of test at 1.12663 [#3 buy 0.01 EURUSD 1.12736]
JG 009:12:21.423 Trades 2016.04.1423:59:59 deal #6 sell 0.01 EURUSD at 1.12663 done (based on order #5)
HN 009:12:21.423 Trade 2016.04.1423:59:59 deal performed [#6 sell 0.01 EURUSD at 1.12663]
IS 009:12:21.423 Trade 2016.04.1423:59:59 order performed sell 0.01 at 1.12663 [#5 sell 0.01 EURUSD at 1.12663]
以下是在MT5中测试EA程序的奇迹(见图片文件)......在负余额的情况下可以有正的均衡性吗? 什么时候是负余额?在转向贸易国之前,我经常改变主意,还没来得及去做......我想现在是时候去睡觉了)
如果有人对开放代码和套装感兴趣,请告诉我。- 我一定会把它贴出来。我已经开始掌握MT5的对冲,现在,-奇迹,虽然)
没有奇迹。有大量盈余的敞口头寸,也有亏损大于资产负债表规模的平仓头寸。没有什么坏处,因为有足够的资金来维持未结头寸。
请你告诉我,我的错误是什么。
for(int i=0;i<N_Sell;i++) printf("OpenSellTime[%d] = %G",i,TimeToString(OpenSellTime[i],TIME_DATE|TIME_MINUTES)," PriceOpenSell[%d] = %G",i,PriceOpenSell[i]);
没有打印OpenSellTime数组中的日期,也没有打印表达式的第二部分 - PriceOpenSell。
而且,我找不到像%G和%D这样的printf 命令。
大家下午好!)
这是给一个编程方面的傻瓜的问题...
我试图为一个新的版本编译一个EA,编译器给了我很多不同的错误...
这里是其中之一
如果(反对删除){删除( OP_SELLSTOP);删除( OP_SELLLIMIT);}。
在这段代码中,有2个标为红色的错误:'(' - 预期的对象指针
在阅读了一些关于错误的主题后,我明白这个名字是保留的,我必须替换它......。
所以问题是用什么来取代它?
大家下午好!)
这是给一个编程方面的傻瓜的问题...
我试图为一个新的版本编译一个EA,编译器给了我很多不同的错误...
这里是其中之一
如果(反对删除){删除( OP_SELLSTOP);删除( OP_SELLLIMIT);}。
在这段代码中,有2个标为红色的错误:'(' - 预期的对象指针
在阅读了一些关于错误的主题后,我明白这个名字是保留的,我必须替换它......。
所以问题是用什么来取代它?
在代码中,有这样一行
Print (";OpenSellTime - ",TimeToString(OpenSellTime[N_Sell],TIME_DATE|TIME_MINUTES), ";PriceOpenSell", PriceOpenSell[N_Sell]);
为什么我在输出中得到这个文本。
敞开式销售时间 - 2015.12.01 11:15
其中";"和第二部分是"PriceOpenSell"?
在代码中,有这样一行
Print (";OpenSellTime - ",TimeToString(OpenSellTime[N_Sell],TIME_DATE|TIME_MINUTES), ";PriceOpenSell", PriceOpenSell[N_Sell]);
为什么我在输出中得到这个文本。
敞开式销售时间 - 2015.12.01 11:15
哪里是";"和第二部分"PriceOpenSell"?
删除";"- 工作。
关于printf 的问题仍然存在...
如何正确地发送平仓 反击的请求?
如果我像以前一样关闭,相反的一个,它被漆上了))。
已经尝试了所有的方法,仍然出现错误 2016.04.15 13:17:24 Core 1 2016.03.29 09:00:00 failed close position #64 buy 0.81 EURUSD by position #0 [ Invalid request]
哪些字段要填,哪些不填?我想,开的头寸是短线还是长线并不重要。
你好,关于测试器的问题。
我正在测试一个多货币专家顾问,我想在显示器中看到正在交易的所有货币对的所有窗口。
在 "可视化软件 "的帮助中提到了在 "可视化软件 "主菜单的 "视图 "部分的 "图表 "命令,它似乎是用来打开新的图表的。但由于某些原因,我根本没有 "图表 "命令,因此,我无法打开 其他货币对的图表。这里的问题是什么?
如何正确地发送平仓 反击的请求?
如果我像以前一样关闭,相反的一个,它被漆上了))。
已经尝试了所有的方法,仍然出现错误 2016.04.15 13:17:24 Core 1 2016.03.29 09:00:00 failed close position #64 buy 0.81 EURUSD by position #0 [ Invalid request]
哪些字段要填,哪些不填?据我所知,不管是多头还是空头,都无所谓。
使用最少的代码 - 使用标准库。
代理人日志。