Скачать MetaTrader 5

Скрипты: ClosePosition

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Опубликуй задачу в сервисе Фриланс и разработчики выполнят ее.
Automated-Trading
Админ
99085
Automated-Trading 2012.08.20 09:47 

ClosePosition:

Данный скрипт предназначен для закрывания открытых позиций.

Автор: Nikolay Kositsin

qazzaq
19
qazzaq 2013.01.29 21:20  

Если открыться скриптои OpenBuyPosition  два раза подряд, то скрипт ClosePosition не закрывает всю позицию целиком.

Alivru
7
Alivru 2017.02.21 05:52  

Скрипт перестал работать правильно. Вместо закрытия позиций, открывает их.  ((

Nikolay Kositsin
299042
Nikolay Kositsin 2017.02.21 08:59  
Alivru:

Скрипт перестал работать правильно. Вместо закрытия позиций, открывает их.  ((

В принципе, скрипт выполнен для брокеров, имеющих всего по одной позиции для каждой валюты. Потому как непонятно, а что, собственно говоря, закрывать, когда объект для приложения усилий не один, а во множественном числе.

Так что с открыванием проблема закрыта, новый код опубликуют, а вот с кучей позиций всё-равно будет некоррект.

Nikolay Kositsin
299042
Nikolay Kositsin 2017.02.21 09:16  
fxsaber:
Вроде, понятно же
input int Deviation = 100;

#include <MT4Orders.mqh> // https://www.mql5.com/ru/code/16006

#define Bid (SymbolInfoDouble(_Symbol, SYMBOL_BID))
#define Ask (SymbolInfoDouble(_Symbol, SYMBOL_ASK))

void OnStart()
{
  for (int i = OrdersTotal() - 1; i >= 0; i--)
    if (OrderSelect(i, SELECT_BY_POS) && (OrderSymbol() == _Symbol) && (OrderType() <= OP_SELL))
      OrderClose(OrderTicket(), OrderLots(), (OrderType() == OP_BUY) ? Bid : Ask, Deviation);
}
Едва ли! Ваш код как носорог в посудной лавке просто грохнет все позиции и всё, а не закроет требуемый объём. Удачи.
fxsaber
4397
fxsaber 2017.02.21 09:17  
Nikolay Kositsin:
Едва ли! Ваш код как носорог в посудной лавке просто грохнет все позиции и всё, а не закроет требуемый объём. Удачи.
Ну так элементарно же добавить в код закрытый объем.
Nikolay Kositsin
299042
Nikolay Kositsin 2017.02.21 09:26  
fxsaber:
Ну так элементарно же добавить в код закрытый объем.

Вы самой сути скрипта не понимаете! Название скрипта - "Закрыть позицию"! А позиций десять! В изначальной логике скрипта предполагается только одна позиция. И код ваш вообще никчемушний напрочь. Вполне достаточно строчки:

request.position=PositionGetInteger(POSITION_TICKET);
fxsaber
4397
fxsaber 2017.02.21 09:30  
Nikolay Kositsin:
Вы самой сути скрипта не понимаете! Название скрипта - "Закрыть позицию"! А позиций десять! В изначальной логике скрипта предполагается только одна позиция.

Нетто-позиция даже на MT5-Hedge и MT4 всегда одна. Алгоритм такой

  1. Вычислили размер и направление нетто-позы.
  2. В противоход ей открыли позу на указанный объем.
  3. Схлопнули НОВУЮ позу по OrderCloseBy.

fxsaber
4397
fxsaber 2017.02.21 09:36  
Nikolay Kositsin:

И код ваш вообще никчемушний напрочь. Вполне достаточно строчки:

request.position=PositionGetInteger(POSITION_TICKET);
Если говорить о никчемности, то вот она
request.type_filling=ORDER_FILLING_FOK;
Nikolay Kositsin
299042
Nikolay Kositsin 2017.02.21 09:37  
fxsaber:

Нетто-позиция даже на MT5-Hedge и MT4 всегда одна. Алгоритм такой

  1. Вычислили размер и направление нетто-позы.
  2. В противоход ей открыли позу на указанный объем.
  3. Схлопнули НОВУЮ позу по OrderCloseBy.

Это разговор ни об чём в стиле: "Ежели бы бабушка была бы дедушкой и имела бы пенис...." Скрипт закрывает всего одну позицию в терминале и всё!
fxsaber
4397
fxsaber 2017.02.21 09:42  
Nikolay Kositsin:
Это разговор ни об чём в стиле: "Ежели бы бабушка была бы дедушкой и имела бы пенис...." Скрипт закрывает всего одну позицию в терминале и всё!
Metaquotes-Demo, Si-3.17, Netting - пробуйте!
12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий