![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Jimmynz:
Вы можете добавить следующий фрагмент кода для проверки дня и времени, чтобы ваш советник мог закрыть все сделки.
extern bool FridayClose = true; // включить закрытие всех сделок в пятницу
extern int closeDay = 5; // пятница = день закрытия рынка на неделе
extern int closeTime = 19; // 7 часов вечера = время закрытия рынка
int timeFlag = 0; // разрешить проведение торгов
if (FridayClose && TimeHour(TimeCurrent())>=closeTime && TimeDayOfWeek(TimeCurrent())>=closeDay)
{
timeFlag=1; // устанавливаем флаг для остановки торговли
closeAll(); // функция закрывает все сделки, открытые этим советником
}
Надеюсь, это поможет вам.
С наилучшими пожеланиями!
coderMike
~качественные услуги по программированию советников~
не скрипт, а код для советника
Скрипты "Закрыть все" для MT4.
Здравствуйте, newdigital,
Большое спасибо за ваш пост.
На самом деле я искал не скрипт, а код, который я могу установить в свой советник. Например, ордера открываются в начале дня и завершаются в конце каждого дня, но все ордера (отложенные или рыночные) не закрываются вообще.
Например, мне дали несколько предложений, например, использовать функцию нового бара или функцию времени, чтобы все ордера закрывались в конце каждого дня. Проблема в том, что я не знаю, как заставить такую функцию работать, поскольку я программист со средним образованием. Я буду очень признателен, если вы мне поможете. Я хочу стать очень профессиональным программистом и кодером.
Пожалуйста, дайте мне знать как можно скорее.
Еще раз спасибо за скрипты.
С наилучшими пожеланиями,
Jimmynz:
Вы можете добавить следующий фрагмент кода для проверки дня и времени, чтобы ваш советник мог закрыть все сделки.
extern bool FridayClose = true; // включить закрытие всех сделок в пятницу
extern int closeDay = 5; // пятница = день закрытия рынка на неделе
extern int closeTime = 19; // 7 часов вечера = время закрытия рынка
int timeFlag = 0; // разрешить проведение торгов
if (FridayClose && TimeHour(TimeCurrent())>=closeTime && TimeDayOfWeek(TimeCurrent())>=closeDay)
{
timeFlag=1; // устанавливаем флаг для остановки торговли
closeAll(); // функция закрывает все сделки, открытые этим советником
}
Надеюсь, это поможет вам.
С наилучшими пожеланиями!
coderMike
~качественные услуги по программированию EA~Привет, Jimmynz,
Большое спасибо за вашу большую помощь.
У меня только один маленький вопрос, пожалуйста. Поможет ли этот код также закрываться на дневном баре. Я использую отложенные ордера для торговли в своем коде, но хочу, чтобы советник закрывал все отложенные и открытые ордера в конце дневной свечи.
Я подумал, что мне нужно использовать следующее:
if (Close[1] == Open[0])
return (1);
где 1 используется в функции кода сигнала. Типа if (signal ==1) бла бла бла.
Я все еще не профессиональный программист, но я хочу им стать, поэтому я сделаю все возможное, чтобы осуществить эту мечту.
Еще раз спасибо, и я надеюсь, что скоро услышу от вас.
С наилучшими пожеланиями,
Я использовал этот код, но он не сработал
Здравствуйте,
Я просто хочу упомянуть, что я использовал этот код для закрытия всех ордеров, но он совсем не сработал.
if (AccountProfit() > 0)
{
DeleteOrders();
CloseOrders();
}
void CloseOrders()
{
int cnt = OrdersTotal();
for (int i=cnt-1; i >= 0; i--)
{
if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue;
int type = OrderType();
if (type == OP_BUY)
{
RefreshRates();
OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 3);
}
if (type == OP_SELL)
{
RefreshRates();
OrderClose(OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 3);
}
}
}
void DeleteOrders()
{
int cnt = OrdersTotal();
for (int i=cnt-1; i >= 0; i--)
{
if (!OrderSelect(i, SELECT_BY_POS, MODE_TRADES)) continue;
int type = OrderType();
if (type == OP_BUYSTOP || type == OP_SELLSTOP || type == OP_BUYLIMIT || type == OP_SELLLIMIT)
{
OrderDelete(OrderTicket());
}
}
}
Странно, что некоторые коды верны, но не работают.
Пожалуйста, дайте мне знать, если у вас есть мнение по этому поводу.
С наилучшими пожеланиями,
Скрипт покупки/продажи ВСЕХ CHF pls!!!!
Здравствуйте,
Мне нужна помощь, если кто-нибудь может подсказать мне, где найти скрипт, который может ПОКУПАТЬ @ ПРОДАВАТЬ все пары CHF или сделать мне такой, если это не слишком обременительно.![](https://c.mql5.com/forextsd/smiles/embaressed_smile.png)
заранее спасибо
ps: извините, если разместил это не в том разделе
Есть ли у кого-нибудь советник, закрывающий конкретную валюту, когда средняя цена только этой конкретной пары достигает введенной пользователем цели по прибыли?![](https://c.mql5.com/forextsd/smiles/rolleyes2.png)
скрипт отложенного ордера на MA
Привет всем
не могли бы вы мне помочь
мне нужен скрипт, который будет выполняться на графике
отложенный ордер = MA
Я нашел кое-что, но не могу заставить его работать
пожалуйста, помогите
IcebergOrders [Скрипт]...
Вот инструмент открытых ордеров/айсберг-ордеров, который может быть полезен некоторым людям...;)
Сценарий: Закрыть все позиции и сделать разворот.
Здравствуйте
Возможно ли сделать скрипт, который закрывает все позиции и делает разворот с одинаковым размером?
Пример:
Я длинный GBPUSD 1.0 лот
Также длинная GBPJPY 1.0 лот
СКРИПТ активирован
Теперь у меня короткая позиция GBPUSD 1.0 лот
Также короткая GBPJPY 1.0 лот.
Спасибо!
Заранее спасибо.
Привет
Можно ли сделать скрипт, который закрывает все позиции и делает разворот с одинаковым размером?
Пример:
Я длинный GBPUSD 1.0 лот
Также длинная GBPJPY 1.0 лот
СКРИПТ активирован
Теперь у меня короткая позиция GBPUSD 1.0 лот
Также короткая GBPJPY 1.0 лот.
Спасибо!
Заранее спасибо.Грубый псевдокод в start() будет выглядеть следующим образом
if (OrderSymbol() == Symbol() && (OrderType() == OP_BUY || OrderType() == OP_SELL)) {
if (OrderType() == OP_BUY) {
OrderSend(OP_SELL,OrderLots(),...)
} else if (OrderType() == OP_SELL) {
OrderSend(OP_BUY,OrderLots(),...)
}
OrderClose(OrderTicket(),...);
}
}