Встречайте бета-версию MetaTrader 5 с хеджингом и новым руководством пользователя

 

Состоялся выпуск бета-версии торговой платформы MetaTrader 5 build 1281 с хеджинговой системой учета позиций. Ее отличие от традиционной неттинговой — возможность открытия множества сделок по одному и тому же финансовому инструменту, в том числе — разнонаправленных. Теперь вы можете пользоваться неттинговой моделью для торговли биржевыми инструментами, а хеджинговой — для валютного трейдинга. И все это — внутри одной институциональной платформы MetaTrader 5.

Новая система позиций аналогична привычной вам системе в MetaTrader 4, но содержит расширенные возможности учета ордеров: исполнение ордеров несколькими сделками, в том числе и частичное исполнение. В хеджинговой системе MetaTrader 5, если по финансовому инструменту есть открытая позиция и совершается следующая сделка, то происходит открытие новой позиции. По каждой из позиций можно выставить уровни Stop Loss и Take Profit, а также посмотреть уровень прибыли.

Обновленная торговая платформа MetaTrader 5 с хеджинговой системой учета позиций

Все желающие могут принять участие в публичном тестировании обновленной мультирыночной платформы MetaTrader 5. Для этого необходимо открыть демо-счет на сервере MetaQuotes-Demo и подключиться к нему. Платформа автоматически обновится до 1281-го билда и вы сможете открыть демо-счет с хеджинговой системой позиций, указав "Use hedge in trading" в диалоговом окне. О выявленных в ходе трейдинга ошибках просим сообщать нам через форум mql5.com или создавать заявки в сервисдеске.

Откройте демо-счет с хеджированием на MetaQuotes-Demo

При тестировании необходимо учитывать, что:

  1. Подписка на торговые сигналы с хеджевых счетов не будет работать.
  2. Торговля на новом хеджевом счете будет работать корректно только в MetaTrader 5 build 1274 и последующих сборках.
  3. Некоторые торговые роботы на хеджевом счете могут торговать некорректно.
  4. Скрипты, эксперты, индикаторы, скомпилированные новым билдом MetaEditor, не запустятся на виртуальном хостинге.

Помимо хеджинга, в бета-версии MetaTrader 5 появилось обновленное руководство пользователя с большим количеством иллюстраций и обучающих видеороликов. Просто нажав F1, вы получите ответы на большинство интересующих вас вопросов и узнаете много нового о своей платформе.

С обновленным MetaTrader 5 больше нет необходимости использовать разные платформы для Форекса и фондовой биржи. Теперь это одно универсальное решение для торговли на множестве финансовых рынков.

Загружайте новый бета-билд, пробуйте в действии все новые возможности платформы и сообщайте нам о результатах тестирования. С вашей помощью мы сделаем MetaTrader 5 еще лучше!

Торговая платформа MetaTrader 5 для торговли на финансовых рынках
Торговая платформа MetaTrader 5 для торговли на финансовых рынках
  • www.metatrader5.com
Торговый терминал MetaTrader 5 - это бесплатный инструмент трейдера, позволяющий торговать на разных финансовых рынках. Торговый терминал обладает широкими аналитическими возможностями и поддерживает более 70 различных инструментов для выполнения технического анализа
 
MetaQuotes Software Corp.:
Странно, что про тиковый тестер не упомянуто. Или его еще не стоит обкатывать?
 

Не правильно работает Торговый приказ на модификацию уровней StopLoss и/или TakeProfit на хеджинговых счетах. модифицирует первую позицию по символу если открыто несколько, и то не поймешь как.

В логе эксперта пишет

22:44:48.963    test_05 (EURUSD,H1)     EURUSD: ID = 79594479
OO      0       22:44:48.963    test_05 (EURUSD,H1)     EURUSD: ResultDeal() = 65376504
QG      0       22:45:09.283    test_05 (EURUSD,H1)     EURUSD: ID = 79594534
JO      0       22:45:09.283    test_05 (EURUSD,H1)     EURUSD: ResultDeal() = 65376560
NP      0       22:45:10.440    test_05 (EURUSD,H1)     CTrade::OrderSend: modify position #79594479 EURUSD (sl: 0.00000, tp: 1.11905) [no changes]
FP      0       22:45:10.459    test_05 (EURUSD,H1)     CTrade::OrderSend: modify position #79594479 EURUSD (sl: 1.11305, tp: 0.00000) [no changes]
GQ      0       22:45:10.931    test_05 (EURUSD,H1)     CTrade::OrderSend: modify position #79594479 EURUSD (sl: 0.00000, tp: 1.11905) [no changes]
LQ      0       22:45:10.969    test_05 (EURUSD,H1)     CTrade::OrderSend: modify position #79594479 EURUSD (sl: 1.11305, tp: 0.00000) [no changes]
CQ      0       22:45:13.330    test_05 (EURUSD,H1)     CTrade::OrderSend: modify position #79594479 EURUSD (sl: 0.00000, tp: 1.11905) [no changes]
ER      0       22:45:13.534    test_05 (EURUSD,H1)     CTrade::OrderSend: modify position #79594479 EURUSD (sl: 1.11305, tp: 0.00000) [no changes]
FR      0       22:45:14.981    test_05 (EURUSD,H1)     CTrade::OrderSend: modify position #79594479 EURUSD (sl: 0.00000, tp: 1.11905) [no changes]
OS      0       22:45:15.631    test_05 (EURUSD,H1)     CTrade::OrderSend: modify position #79594479 EURUSD (sl: 0.00000, tp: 1.11905) [no changes]
FS      0       22:45:15.747    test_05 (EURUSD,H1)     CTrade::OrderSend: modify position #79594479 EURUSD (sl: 1.11306, tp: 0.00000) [no changes]
MS      0       22:45:19.731    test_05 (EURUSD,H1)     CTrade::OrderSend: modify position #79594479 EURUSD (sl: 0.00000, tp: 1.11902) [no changes]
PL      0       22:45:21.531    test_05 (EURUSD,H1)     CTrade::OrderSend: modify position #79594479 EURUSD (sl: 0.00000, tp: 1.11902) [no changes]
ML      0       22:45:21.589    test_05 (EURUSD,H1)     CTrade::OrderSend: modify position #79594479 EURUSD (sl: 1.11306, tp: 0.00000) [no changes]
PL      0       22:45:22.810    test_05 (EURUSD,H1)     CTrade::OrderSend: modify position #79594479 EURUSD (sl: 0.00000, tp: 1.11903) [no changes]
QM      0       22:45:22.916    test_05 (EURUSD,H1)     CTrade::OrderSend: modify position #79594479 EURUSD (sl: 1.11307, tp: 0.00000) [no changes]
IN      0       22:45:23.312    test_05 (EURUSD,H1)     CTrade::PositionModify: MQL5 program is stopped. Trading is disabled
 

в Журнале 

MD      0       22:45:06.591    Experts expert test_05 (EURUSD,H1) loaded successfully
JN      0       22:45:09.107    Trades  '3247769': instant buy 0.01 EURUSD at 1.11620 (deviation: 10)
PJ      0       22:45:09.281    Trades  '3247769': deal #65376560 buy 0.01 EURUSD at 1.11620 done (based on order #79594534)
KJ      0       22:45:09.283    Trades  '3247769': order #79594534 buy 0.01 / 0.01 EURUSD at 1.11620 done in 176 ms
HG      0       22:45:09.285    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 1.11302, tp: 1.11902 -> sl: 1.11305, tp: 0.00000
LQ      0       22:45:09.480    Trades  '3247769': modify #79594479 buy 0.01 EURUSD -> sl: 1.11305, tp: 0.00000 done in 195 ms
KR      0       22:45:09.481    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 1.11305, tp: 0.00000 -> sl: 0.00000, tp: 1.11905
MR      0       22:45:09.670    Trades  '3247769': modify #79594479 buy 0.01 EURUSD -> sl: 0.00000, tp: 1.11905 done in 188 ms
EL      0       22:45:09.807    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 0.00000, tp: 1.11905 -> sl: 1.11305, tp: 0.00000
JL      0       22:45:09.987    Trades  '3247769': modify #79594479 buy 0.01 EURUSD -> sl: 1.11305, tp: 0.00000 done in 180 ms
PO      0       22:45:09.989    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 1.11305, tp: 0.00000 -> sl: 0.00000, tp: 1.11905
PI      0       22:45:10.178    Trades  '3247769': modify #79594479 buy 0.01 EURUSD -> sl: 0.00000, tp: 1.11905 done in 188 ms
CI      0       22:45:10.261    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 0.00000, tp: 1.11905 -> sl: 1.11305, tp: 0.00000
RK      0       22:45:10.440    Trades  '3247769': modify #79594479 buy 0.01 EURUSD -> sl: 1.11305, tp: 0.00000 done in 179 ms
CI      0       22:45:10.440    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 0.00000, tp: 1.11905 -> sl: 0.00000, tp: 1.11905 skipped as it changes nothing
MD      0       22:45:10.459    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 1.11305, tp: 0.00000 -> sl: 1.11305, tp: 0.00000 skipped as it changes nothing
MN      0       22:45:10.461    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 1.11305, tp: 0.00000 -> sl: 0.00000, tp: 1.11905
OO      0       22:45:10.631    Trades  '3247769': modify #79594479 buy 0.01 EURUSD -> sl: 0.00000, tp: 1.11905 done in 170 ms
RH      0       22:45:10.718    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 0.00000, tp: 1.11905 -> sl: 1.11305, tp: 0.00000
JH      0       22:45:10.930    Trades  '3247769': modify #79594479 buy 0.01 EURUSD -> sl: 1.11305, tp: 0.00000 done in 212 ms
RF      0       22:45:10.931    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 0.00000, tp: 1.11905 -> sl: 0.00000, tp: 1.11905 skipped as it changes nothing
DE      0       22:45:10.968    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 1.11305, tp: 0.00000 -> sl: 1.11305, tp: 0.00000 skipped as it changes nothing
NL      0       22:45:10.970    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 1.11305, tp: 0.00000 -> sl: 0.00000, tp: 1.11905
DL      0       22:45:11.187    Trades  '3247769': modify #79594479 buy 0.01 EURUSD -> sl: 0.00000, tp: 1.11905 done in 217 ms
PO      0       22:45:11.230    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 0.00000, tp: 1.11905 -> sl: 1.11305, tp: 0.00000
MI      0       22:45:11.440    Trades  '3247769': modify #79594479 buy 0.01 EURUSD -> sl: 1.11305, tp: 0.00000 done in 210 ms
JI      0       22:45:11.443    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 1.11305, tp: 0.00000 -> sl: 0.00000, tp: 1.11905
HK      0       22:45:11.637    Trades  '3247769': modify #79594479 buy 0.01 EURUSD -> sl: 0.00000, tp: 1.11905 done in 194 ms
LD      0       22:45:11.720    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 0.00000, tp: 1.11905 -> sl: 1.11305, tp: 0.00000
LD      0       22:45:11.901    Trades  '3247769': modify #79594479 buy 0.01 EURUSD -> sl: 1.11305, tp: 0.00000 done in 181 ms
LF      0       22:45:11.904    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 1.11305, tp: 0.00000 -> sl: 0.00000, tp: 1.11905
RF      0       22:45:12.090    Trades  '3247769': modify #79594479 buy 0.01 EURUSD -> sl: 0.00000, tp: 1.11905 done in 187 ms
EQ      0       22:45:12.148    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 0.00000, tp: 1.11905 -> sl: 1.11305, tp: 0.00000
DS      0       22:45:12.330    Trades  '3247769': modify #79594479 buy 0.01 EURUSD -> sl: 1.11305, tp: 0.00000 done in 182 ms
GS      0       22:45:12.333    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 1.11305, tp: 0.00000 -> sl: 0.00000, tp: 1.11905
PM      0       22:45:12.532    Trades  '3247769': modify #79594479 buy 0.01 EURUSD -> sl: 0.00000, tp: 1.11905 done in 199 ms
LN      0       22:45:12.723    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 0.00000, tp: 1.11905 -> sl: 1.11305, tp: 0.00000
FN      0       22:45:12.922    Trades  '3247769': modify #79594479 buy 0.01 EURUSD -> sl: 1.11305, tp: 0.00000 done in 198 ms
RH      0       22:45:12.923    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 1.11305, tp: 0.00000 -> sl: 0.00000, tp: 1.11905
HH      0       22:45:13.102    Trades  '3247769': modify #79594479 buy 0.01 EURUSD -> sl: 0.00000, tp: 1.11905 done in 179 ms
QK      0       22:45:13.132    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 0.00000, tp: 1.11905 -> sl: 1.11305, tp: 0.00000
NE      0       22:45:13.330    Trades  '3247769': modify #79594479 buy 0.01 EURUSD -> sl: 1.11305, tp: 0.00000 done in 198 ms
NH      0       22:45:13.330    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 0.00000, tp: 1.11905 -> sl: 0.00000, tp: 1.11905 skipped as it changes nothing
NG      0       22:45:13.534    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 1.11305, tp: 0.00000 -> sl: 1.11305, tp: 0.00000 skipped as it changes nothing
EO      0       22:45:13.536    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 1.11305, tp: 0.00000 -> sl: 0.00000, tp: 1.11905
KI      0       22:45:13.790    Trades  '3247769': modify #79594479 buy 0.01 EURUSD -> sl: 0.00000, tp: 1.11905 done in 254 ms
RJ      0       22:45:14.046    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 0.00000, tp: 1.11905 -> sl: 1.11305, tp: 0.00000
CK      0       22:45:14.211    Trades  '3247769': modify #79594479 buy 0.01 EURUSD -> sl: 1.11305, tp: 0.00000 done in 165 ms
ED      0       22:45:14.214    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 1.11305, tp: 0.00000 -> sl: 0.00000, tp: 1.11905
KD      0       22:45:14.381    Trades  '3247769': modify #79594479 buy 0.01 EURUSD -> sl: 0.00000, tp: 1.11905 done in 167 ms
QG      0       22:45:14.416    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 0.00000, tp: 1.11905 -> sl: 1.11305, tp: 0.00000
NF      0       22:45:14.602    Trades  '3247769': modify #79594479 buy 0.01 EURUSD -> sl: 1.11305, tp: 0.00000 done in 186 ms
JQ      0       22:45:14.604    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 1.11305, tp: 0.00000 -> sl: 0.00000, tp: 1.11905
PS      0       22:45:14.781    Trades  '3247769': modify #79594479 buy 0.01 EURUSD -> sl: 0.00000, tp: 1.11905 done in 177 ms
EL      0       22:45:14.816    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 0.00000, tp: 1.11905 -> sl: 1.11305, tp: 0.00000
FM      0       22:45:14.981    Trades  '3247769': modify #79594479 buy 0.01 EURUSD -> sl: 1.11305, tp: 0.00000 done in 164 ms
KS      0       22:45:14.981    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 0.00000, tp: 1.11905 -> sl: 0.00000, tp: 1.11905 skipped as it changes nothing
OS      0       22:45:15.056    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 1.11305, tp: 0.00000 -> sl: 1.11306, tp: 0.00000
QM      0       22:45:15.230    Trades  '3247769': modify #79594479 buy 0.01 EURUSD -> sl: 1.11306, tp: 0.00000 done in 175 ms
RN      0       22:45:15.233    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 1.11306, tp: 0.00000 -> sl: 0.00000, tp: 1.11905
NO      0       22:45:15.421    Trades  '3247769': modify #79594479 buy 0.01 EURUSD -> sl: 0.00000, tp: 1.11905 done in 188 ms
JH      0       22:45:15.442    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 0.00000, tp: 1.11905 -> sl: 1.11306, tp: 0.00000
LH      0       22:45:15.631    Trades  '3247769': modify #79594479 buy 0.01 EURUSD -> sl: 1.11306, tp: 0.00000 done in 188 ms
JF      0       22:45:15.631    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 0.00000, tp: 1.11905 -> sl: 0.00000, tp: 1.11905 skipped as it changes nothing
KR      0       22:45:15.746    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 1.11306, tp: 0.00000 -> sl: 1.11306, tp: 0.00000 skipped as it changes nothing
LL      0       22:45:15.748    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 1.11306, tp: 0.00000 -> sl: 0.00000, tp: 1.11906
FL      0       22:45:15.930    Trades  '3247769': modify #79594479 buy 0.01 EURUSD -> sl: 0.00000, tp: 1.11906 done in 182 ms
LO      0       22:45:16.003    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 0.00000, tp: 1.11906 -> sl: 1.11305, tp: 0.00000
ON      0       22:45:16.201    Trades  '3247769': modify #79594479 buy 0.01 EURUSD -> sl: 1.11305, tp: 0.00000 done in 197 ms
FI      0       22:45:16.203    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 1.11305, tp: 0.00000 -> sl: 0.00000, tp: 1.11906
HK      0       22:45:16.390    Trades  '3247769': modify #79594479 buy 0.01 EURUSD -> sl: 0.00000, tp: 1.11906 done in 187 ms
GD      0       22:45:16.397    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 0.00000, tp: 1.11906 -> sl: 1.11306, tp: 0.00000
GE      0       22:45:16.640    Trades  '3247769': modify #79594479 buy 0.01 EURUSD -> sl: 1.11306, tp: 0.00000 done in 243 ms
NF      0       22:45:16.641    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 0.00000, tp: 1.11906 -> sl: 0.00000, tp: 1.11905
RF      0       22:45:16.817    Trades  '3247769': modify #79594479 buy 0.01 EURUSD -> sl: 0.00000, tp: 1.11905 done in 175 ms
GQ      0       22:45:16.915    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 0.00000, tp: 1.11905 -> sl: 1.11305, tp: 0.00000
NP      0       22:45:17.090    Trades  '3247769': modify #79594479 buy 0.01 EURUSD -> sl: 1.11305, tp: 0.00000 done in 175 ms
MS      0       22:45:17.093    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 1.11305, tp: 0.00000 -> sl: 0.00000, tp: 1.11905
LM      0       22:45:17.261    Trades  '3247769': modify #79594479 buy 0.01 EURUSD -> sl: 0.00000, tp: 1.11905 done in 168 ms
NN      0       22:45:17.426    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 0.00000, tp: 1.11905 -> sl: 1.11306, tp: 0.00000
NO      0       22:45:17.607    Trades  '3247769': modify #79594479 buy 0.01 EURUSD -> sl: 1.11306, tp: 0.00000 done in 181 ms
JH      0       22:45:17.610    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 1.11306, tp: 0.00000 -> sl: 0.00000, tp: 1.11906
LH      0       22:45:17.787    Trades  '3247769': modify #79594479 buy 0.01 EURUSD -> sl: 0.00000, tp: 1.11906 done in 177 ms
IK      0       22:45:17.925    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 0.00000, tp: 1.11906 -> sl: 1.11306, tp: 0.00000
MJ      0       22:45:18.171    Trades  '3247769': modify #79594479 buy 0.01 EURUSD -> sl: 1.11306, tp: 0.00000 done in 246 ms
FE      0       22:45:18.173    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 0.00000, tp: 1.11906 -> sl: 0.00000, tp: 1.11905
LG      0       22:45:18.377    Trades  '3247769': modify #79594479 buy 0.01 EURUSD -> sl: 0.00000, tp: 1.11905 done in 204 ms
EP      0       22:45:18.410    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 0.00000, tp: 1.11905 -> sl: 1.11305, tp: 0.00000
NQ      0       22:45:18.591    Trades  '3247769': modify #79594479 buy 0.01 EURUSD -> sl: 1.11305, tp: 0.00000 done in 181 ms
FR      0       22:45:18.593    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 1.11305, tp: 0.00000 -> sl: 0.00000, tp: 1.11906
ER      0       22:45:18.782    Trades  '3247769': modify #79594479 buy 0.01 EURUSD -> sl: 0.00000, tp: 1.11906 done in 189 ms
HM      0       22:45:18.928    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 0.00000, tp: 1.11906 -> sl: 1.11307, tp: 0.00000
ML      0       22:45:19.117    Trades  '3247769': modify #79594479 buy 0.01 EURUSD -> sl: 1.11307, tp: 0.00000 done in 189 ms
EO      0       22:45:19.119    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 1.11307, tp: 0.00000 -> sl: 0.00000, tp: 1.11902
EI      0       22:45:19.347    Trades  '3247769': modify #79594479 buy 0.01 EURUSD -> sl: 0.00000, tp: 1.11902 done in 228 ms
GJ      0       22:45:19.546    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 0.00000, tp: 1.11902 -> sl: 1.11307, tp: 0.00000
GK      0       22:45:19.730    Trades  '3247769': modify #79594479 buy 0.01 EURUSD -> sl: 1.11307, tp: 0.00000 done in 184 ms
II      0       22:45:19.731    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 0.00000, tp: 1.11902 -> sl: 0.00000, tp: 1.11902 skipped as it changes nothing
OI      0       22:45:19.759    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 1.11307, tp: 0.00000 -> sl: 1.11302, tp: 0.00000
HK      0       22:45:19.941    Trades  '3247769': modify #79594479 buy 0.01 EURUSD -> sl: 1.11302, tp: 0.00000 done in 182 ms
OD      0       22:45:19.944    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 1.11302, tp: 0.00000 -> sl: 0.00000, tp: 1.11907
EE      0       22:45:20.130    Trades  '3247769': modify #79594479 buy 0.01 EURUSD -> sl: 0.00000, tp: 1.11907 done in 186 ms
JF      0       22:45:20.365    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 0.00000, tp: 1.11907 -> sl: 1.11302, tp: 0.00000
GF      0       22:45:20.550    Trades  '3247769': modify #79594479 buy 0.01 EURUSD -> sl: 1.11302, tp: 0.00000 done in 185 ms
KQ      0       22:45:20.552    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 1.11302, tp: 0.00000 -> sl: 0.00000, tp: 1.11902
KP      0       22:45:20.740    Trades  '3247769': modify #79594479 buy 0.01 EURUSD -> sl: 0.00000, tp: 1.11902 done in 188 ms
ES      0       22:45:20.858    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 0.00000, tp: 1.11902 -> sl: 1.11307, tp: 0.00000
FM      0       22:45:21.050    Trades  '3247769': modify #79594479 buy 0.01 EURUSD -> sl: 1.11307, tp: 0.00000 done in 192 ms
KN      0       22:45:21.053    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 1.11307, tp: 0.00000 -> sl: 0.00000, tp: 1.11902
IO      0       22:45:21.247    Trades  '3247769': modify #79594479 buy 0.01 EURUSD -> sl: 0.00000, tp: 1.11902 done in 194 ms
GH      0       22:45:21.298    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 0.00000, tp: 1.11902 -> sl: 1.11306, tp: 0.00000
LH      0       22:45:21.530    Trades  '3247769': modify #79594479 buy 0.01 EURUSD -> sl: 1.11306, tp: 0.00000 done in 233 ms
DF      0       22:45:21.531    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 0.00000, tp: 1.11902 -> sl: 0.00000, tp: 1.11902 skipped as it changes nothing
DE      0       22:45:21.588    Trades  '3247769': modify #79594479 buy 0.01 EURUSD sl: 1.11306, tp: 0.00000 -> sl: 1.11306, tp: 0.00000 skipped as it changes nothing

RL      0       22:45:23.317    Experts expert test_05 (EURUSD,H1) removed
 

Тестовый код

//+------------------------------------------------------------------+
//|                                                      test_05.mq5 |
//|                                                   Sergey Gritsay |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Sergey Gritsay"
#property link      "https://www.mql5.com"
#property version   "1.00"
#include <Trade\Trade.mqh>
#include<Trade\AccountInfo.mqh>
//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+
enum ENUM_TYPE
  {
   BUY=ORDER_TYPE_BUY,
   SELL=ORDER_TYPE_SELL
  };
input ulong Magic=12;
input ENUM_TYPE Type_open=BUY;
input double Lot=0.01;
input int SL=300;
input int TP=300;
input bool TrailingStop=false;

CTrade trade;
CAccountInfo AccountInfo;

bool flag_open=true;
long ID=0;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   trade.SetExpertMagicNumber(Magic);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   if(flag_open)
      if(Open(_Symbol,(ENUM_ORDER_TYPE)Type_open,Lot))flag_open=false;

   ModifySL(_Symbol,(double)SL);
   ModifyTP(_Symbol,(double)TP);

   Event(_Symbol,Lot);
  }
//+------------------------------------------------------------------+
bool Open(string symbol,ENUM_ORDER_TYPE type,double Volume)
  {
   int digits=(int)SymbolInfoInteger(symbol,SYMBOL_DIGITS);
   Volume=volume_n(symbol,Volume);
   if(type==ORDER_TYPE_BUY)
     {
      double ask=NormalizeDouble(SymbolInfoDouble(symbol,SYMBOL_ASK),digits);
      if(NormalizeDouble(normalize(symbol,ask),digits)!=ask)return(false);
      if(AccountInfo.FreeMarginCheck(symbol,type,Volume,ask)<=0.0)return(false);
      trade.Buy(Volume,symbol,ask);
     }
   if(type==ORDER_TYPE_SELL)
     {
      double bid=NormalizeDouble(SymbolInfoDouble(symbol,SYMBOL_BID),digits);
      if(NormalizeDouble(normalize(symbol,bid),digits)!=bid)return(false);
      if(AccountInfo.FreeMarginCheck(symbol,type,Volume,bid)<=0.0)return(false);
      trade.Sell(Volume,symbol,bid);
     }
   if(trade.ResultRetcode()==TRADE_RETCODE_DONE || trade.ResultRetcode()==TRADE_RETCODE_DONE_PARTIAL)
     {
      ID=PositionID(trade.ResultDeal());
      Print(symbol,": ID = ",ID);
      Print(symbol,": ResultDeal() = ",trade.ResultDeal());
      return(true);
     }
   else return(false);
  }
//+------------------------------------------------------------------+
long PositionID(ulong tiket)
  {
   ulong deal_ticket=tiket;
   if(HistorySelect(0,TimeCurrent()))
     {
      int deals=HistoryDealsTotal();
      for(int i=0;i<deals;i++)
        {
         deal_ticket=HistoryDealGetTicket(i);
         if(deal_ticket!=tiket)continue;
         else break;
        }
     }
   return((long)HistoryDealGetInteger(deal_ticket,DEAL_POSITION_ID));
  }
//+------------------------------------------------------------------+
double normalize(string symbol,double value)
  {
   double ts=SymbolInfoDouble(symbol,SYMBOL_TRADE_TICK_SIZE);
   if(ts==0)return(value);
   return(NormalizeDouble(value/ts,0)*ts);
  }
//+------------------------------------------------------------------+
double volume_n(string symbol,double lot)
  {
   double MinLot=SymbolInfoDouble(symbol,SYMBOL_VOLUME_MIN);
   double MaxLot=SymbolInfoDouble(symbol,SYMBOL_VOLUME_MAX);
   double LotStep=SymbolInfoDouble(symbol,SYMBOL_VOLUME_STEP);

   if(lot<MinLot)lot=MinLot;
   if(lot>MaxLot)lot=MaxLot;

   if(LotStep==0.001) return(NormalizeDouble(lot,3));
   if(LotStep==0.01)  return(NormalizeDouble(lot,2));
   if(LotStep==0.1)   return(NormalizeDouble(lot,1));

   return(NormalizeDouble(lot,0));
  }
//+------------------------------------------------------------------+
void ModifySL(string symbol,double sl)
  {
   if(sl<0)return;
   double price=0.0;
   double tp=0.0;
   double last=SymbolInfoDouble(symbol,SYMBOL_LAST);
   double bid=SymbolInfoDouble(symbol,SYMBOL_BID);
   double ask=SymbolInfoDouble(symbol,SYMBOL_ASK);
   double point=SymbolInfoDouble(symbol,SYMBOL_POINT);
   int digits=(int)SymbolInfoInteger(symbol,SYMBOL_DIGITS);

   if(last<=0.0)
     {
      bid=SymbolInfoDouble(symbol,SYMBOL_BID);
      ask=SymbolInfoDouble(symbol,SYMBOL_ASK);
     }
   else
     {
      bid=SymbolInfoDouble(symbol,SYMBOL_LAST);
      ask=SymbolInfoDouble(symbol,SYMBOL_LAST);
     }

   if(bid<=0.0)return;
   if(ask<=0.0)return;

   int total=PositionsTotal();
   for(int i=total-1; i>=0; i--)
     {
      if(PositionGetSymbol(i)==symbol)
        {
         //if(PositionGetInteger(POSITION_MAGIC)!=Magic)continue;
         if(PositionGetInteger(POSITION_IDENTIFIER)==ID)
           {
            if(PositionGetDouble(POSITION_SL)==0)
              {
               if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY)
                 {
                  sl=NormalizeDouble(normalize(symbol,bid-sl*point),digits);
                  tp=PositionGetDouble(POSITION_TP);
                  trade.PositionModify(symbol,sl,tp);
                 }
               if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL)
                 {
                  sl=NormalizeDouble(normalize(symbol,ask+sl*point),digits);
                  tp=PositionGetDouble(POSITION_TP);
                  trade.PositionModify(symbol,sl,tp);
                 }
              }
            else
              {
               if(TrailingStop)
                 {
                  if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY)
                    {
                     sl=NormalizeDouble(normalize(symbol,bid-sl*point),digits);
                     tp=PositionGetDouble(POSITION_TP);
                     if(sl>PositionGetDouble(POSITION_SL))
                        trade.PositionModify(symbol,sl,tp);
                    }
                  if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL)
                    {
                     sl=NormalizeDouble(normalize(symbol,ask+sl*point),digits);
                     tp=PositionGetDouble(POSITION_TP);
                     if(sl<PositionGetDouble(POSITION_SL))
                        trade.PositionModify(symbol,sl,tp);
                    }
                 }
              }
           }
        }
     }
  }
//+------------------------------------------------------------------+
void ModifyTP(string symbol,double tp)
  {
   if(tp<0)return;
   double sl=0.0;
   double last=SymbolInfoDouble(symbol,SYMBOL_LAST);
   double bid=SymbolInfoDouble(symbol,SYMBOL_BID);
   double ask=SymbolInfoDouble(symbol,SYMBOL_ASK);
   double point=SymbolInfoDouble(symbol,SYMBOL_POINT);
   int digits=(int)SymbolInfoInteger(symbol,SYMBOL_DIGITS);

   if(last<=0.0)
     {
      bid=SymbolInfoDouble(symbol,SYMBOL_BID);
      ask=SymbolInfoDouble(symbol,SYMBOL_ASK);
     }
   else
     {
      bid=SymbolInfoDouble(symbol,SYMBOL_LAST);
      ask=SymbolInfoDouble(symbol,SYMBOL_LAST);
     }

   if(bid<=0.0)return;
   if(ask<=0.0)return;

   int total=PositionsTotal();
   for(int i=total-1; i>=0; i--)
     {
      if(PositionGetSymbol(i)==symbol)
        {
         //if(PositionGetInteger(POSITION_MAGIC)==Magic)
         //  {
         if(PositionGetInteger(POSITION_IDENTIFIER)==ID)
           {
            if(PositionGetDouble(POSITION_TP)==0)
              {
               if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_BUY)
                 {
                  sl=PositionGetDouble(POSITION_SL);
                  tp=NormalizeDouble(normalize(symbol,bid+tp*point),digits);
                  if(tp>0)trade.PositionModify(symbol,sl,tp);
                 }
               if(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE_SELL)
                 {
                  sl=PositionGetDouble(POSITION_SL);
                  tp=NormalizeDouble(normalize(symbol,ask-tp*point),digits);
                  if(tp>0)trade.PositionModify(symbol,sl,tp);
                 }
              }
           }
         //}
        }
     }
  }
//+------------------------------------------------------------------+
void Event(string symbol,double Volume)
  {
   ulong deal_ticket=0;
   if(HistorySelectByPosition(ID))
     {
      int total=HistoryDealsTotal();
      for(int i=total-1; i>=0; i--)
        {
         deal_ticket=HistoryDealGetTicket(i);
         if(HistoryDealGetString(deal_ticket,DEAL_SYMBOL)==symbol)
           {
            //if(HistoryDealGetInteger(deal_ticket,DEAL_MAGIC)==Magic)
            //  {
            if(HistoryDealGetInteger(deal_ticket,DEAL_ENTRY)==DEAL_ENTRY_OUT)
              {

               if(StringFind(HistoryDealGetString(deal_ticket,DEAL_COMMENT),"sl")>=0)
                 {
                  if(HistoryDealGetInteger(deal_ticket,DEAL_TYPE)==DEAL_TYPE_BUY)
                    {
                     if(Open(symbol,ORDER_TYPE_BUY,Volume))flag_open=false;
                    }
                  if(HistoryDealGetInteger(deal_ticket,DEAL_TYPE)==DEAL_TYPE_SELL)
                    {
                     if(Open(symbol,ORDER_TYPE_SELL,Volume))flag_open=false;
                    }
                 }
               if(StringFind(HistoryDealGetString(deal_ticket,DEAL_COMMENT),"tp")>=0)
                 {
                  flag_open=true;
                  ID=0;
                 }
               if(HistoryDealGetDouble(deal_ticket,DEAL_PROFIT)<0.0)
                 {
                  if(HistoryDealGetInteger(deal_ticket,DEAL_TYPE)==DEAL_TYPE_BUY)
                    {
                     if(Open(symbol,ORDER_TYPE_BUY,Volume))flag_open=false;
                    }
                  if(HistoryDealGetInteger(deal_ticket,DEAL_TYPE)==DEAL_TYPE_SELL)
                    {
                     if(Open(symbol,ORDER_TYPE_SELL,Volume))flag_open=false;
                    }
                 }
              }
            //}
           }
        }
     }
  }
//+------------------------------------------------------------------+
Файлы:
test_05.mq5  11 kb
 
Sergey Gritsay:

Тестовый код

Попробуйте добавить одну строчку в Ваш код

//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---
   trade.SetExpertMagicNumber(Magic);
   trade.SetMarginMode();
//---
   return(INIT_SUCCEEDED);
  }
 
Slawa:

Попробуйте добавить одну строчку в Ваш код

Не помогает, все равно работает с первой открытой позицией если MAGIC номер одинаковый у нескольких позиций, задаешь разный для каждой открытой то все нормально работает.
 

скажите, как в советнике запретить торговлю на хеджевых счетах?

пока не будет норм код приведен в вид для хеджа?

проверка на хедж есть?  

 

ACCOUNT_MARGIN_MODE

Новое свойство ACCOUNT_MARGIN_MODE позволяет получить режим расчета маржи и учета позиций на счете:

Идентификатор
Описание 
ACCOUNT_MARGIN_MODE_RETAIL_NETTING
Используется для внебиржевого рынка при учете позиций в режиме "неттинг" (по одному символу может быть только одна позиция). Расчет маржи осуществляется на основе типа инструмента (SYMBOL_TRADE_CALC_MODE). 
ACCOUNT_MARGIN_MODE_EXCHANGE
Используется для биржевого рынка. Расчет маржи осуществляется на основе дисконтов, указанных в настройках инструментов. Дисконты устанавливаются брокером, однако не могут быть ниже значений, определенных биржей.
ACCOUNT_MARGIN_MODE_RETAIL_HEDGING
Используется для внебиржевого рынка при независимом учете позиций ("хеджинг", по одному символу может быть несколько позиций). Расчет маржи осуществляется на основе типа инструмента (SYMBOL_TRADE_CALC_MODE) и с учетом наличия нескольких позиций по одному символу.

 

 

увидел спасибо 

 
Забыл написать, вторую и последующую позицию получаю при перезапуске советника на чарте графика инструмента не закрывая предыдущую
 
В 1281 по сравнению с 1274 заметно увеличилась скорость подготовки к оптимизации и сам процесс. 
 
Sergey Gritsay:
Не помогает, все равно работает с первой открытой позицией если MAGIC номер одинаковый у нескольких позиций, задаешь разный для каждой открытой то все нормально работает.

Ну так это конечно так.

Символ одинаковый, мейджик одинаковый. Какую позицию выбирать? Работайте с тикетом позиции. Тикет у каждой позиции уникален

Причина обращения: