MMGP logo
Присоединяйтесь к нашему инвестиционному форуму, на котором уже 648,752 пользователей. Чтобы получить доступ ко многим закрытым разделам и начать общение - зарегистрируйтесь прямо сейчас.
Обсуждение синтаксиса, функций и процедур языка MQL. Обмен опытом, своими фрагментами кода. Оптимизация кода. Предложения и заказы на разработку советников.
Первый пост Опции темы
Старый 22.03.2015, 20:07
#1
Любитель
 
Пол: Мужской
Адрес: Беларусь
Инвестирую в: Свой бизнес
Регистрация: 17.01.2009
Сообщений: 971
Благодарностей: 67
Открывать сразу несколько ордеров

Суть такая, может кто создать сможет или скажет где скачать

Надо чтоб одним кликом открывалось 4-5 ордеров либо в баи либо в сел, пока только в 1 сторону интересует.

Можно конечно с возможностью и в разные стороны 4-5 в одну сторону и в другую.

Чтоб заранее мог выстовить сел стопы и тек профиты.

добавлено через 4 часа 46 минут
и что бы в определенных ордерах стоп подтягивался, если возможно ?

Последний раз редактировалось lightsentinel; 23.03.2015 в 00:54. Причина: Добавлено сообщение
lightsentinel вне форума
Старый 23.03.2015, 22:05
#2
Мастер
 
Пол: Мужской
Регистрация: 25.07.2010
Сообщений: 4,091
Благодарностей: 601
Re: Открывать сразу несколько ордеров

Цитата:
Сообщение от lightsentinel Посмотреть сообщение
Суть такая, может кто создать сможет или скажет где скачать

Надо чтоб одним кликом открывалось 4-5 ордеров либо в баи либо в сел, пока только в 1 сторону интересует.

Можно конечно с возможностью и в разные стороны 4-5 в одну сторону и в другую.

Чтоб заранее мог выстовить сел стопы и тек профиты.

добавлено через 4 часа 46 минут
и что бы в определенных ордерах стоп подтягивался, если возможно ?
А заказать программеру написать скрипт или советник нельзя?
Forex-club7 вне форума
Старый 23.03.2015, 22:11
#3
Любитель
 
Имя: Владислав
Пол: Мужской
Адрес: Москва
Инвестирую в: Форекс
Регистрация: 01.04.2014
Сообщений: 121
Благодарностей: 11
Re: Открывать сразу несколько ордеров

Написать такой советник не составит труда любому, кто владеет MQL4.
Vladislav86 вне форума
Старый 24.03.2015, 00:22
#4
Любитель
 
Пол: Мужской
Адрес: Беларусь
Инвестирую в: Свой бизнес
Регистрация: 17.01.2009
Сообщений: 971
Благодарностей: 67
Автор темы Re: Открывать сразу несколько ордеров

Цитата:
Сообщение от Forex-club7 Посмотреть сообщение
А заказать программеру написать скрипт или советник нельзя?
Если был бы в знакомых програмер владеющий MQL4, заказал бы уже)
lightsentinel вне форума
Старый 25.03.2015, 13:58
#5
Мастер
 
Имя: Владислав
Пол: Мужской
Возраст: 48
Инвестирую в: Свой бизнес
Регистрация: 09.04.2011
Сообщений: 2,330
Благодарностей: 1,862

награды Волшебный горшочек 
Re: Открывать сразу несколько ордеров

Цитата:
Сообщение от lightsentinel Посмотреть сообщение
заказал бы уже
Держите. Я сегодня добрый. Набросал код скрипта за десяток минут. Если заработаете, то найдете меня и отблагодарите
PHP код:
//+------------------------------------------------------------------+
//|                                          openorders_for_mmgp.mq4 |
//+------------------------------------------------------------------+
#property copyright "Влад Сергеев для mmgp"
#property version   "1.00"
#property strict
#property script_show_inputs

input int      orders 4;      //всего ордеров в серии
input bool     buy true;      //флаг разрешающий/запрещающий покупки
input bool     sell false;    //флаг разрешающий/запрещающий продажи
input int      magic 100500;  //уникальный номер для ордеров, открываемых этим скриптом
input double   lot 0.01;      //объем каждого ордера серии
input int      tp 100;        //тейк профит, в пунктах
input int      sl 100;        //стоп лосс, в пунктах
input int      slip 2;        //допустимое проскальзывание на открытии, в пунктах (для ECN, где открытие по рынку - игнор)

void OnStart()
{
    
int i 0;
    
int ticket 0;
    if ( 
buy )   {
       while ( 
orders )    {     
           
RefreshRates();
           
ticket OrderSend (Symbol(), OP_BUYlotNormalizeDouble(AskDigits), slip00""magic0clrBlue);   
           if ( 
ticket !=-) {
              if ( 
OrderSelect (ticketSELECT_BY_TICKETMODE_TRADES) )  {
                  
OrderModify (ticketOrderOpenPrice(), NormalizeDouble(OrderOpenPrice()-sl*PointDigits), NormalizeDouble(OrderOpenPrice()+tp*PointDigits), 0clrBlue);
              }
           }
           
i++;
       }
    }
    
0;
    if ( 
sell )  {
       while ( 
orders )    {     
           
RefreshRates();
           
ticket OrderSend (Symbol(), OP_SELLlotNormalizeDouble(BidDigits), slip00""magic0clrRed);   
           if ( 
ticket !=-) {
              if ( 
OrderSelect (ticketSELECT_BY_TICKETMODE_TRADES) )  {
                  
OrderModify (ticketOrderOpenPrice(), NormalizeDouble(OrderOpenPrice()+sl*PointDigits), NormalizeDouble(OrderOpenPrice()-tp*PointDigits), 0clrRed);
              }
           }
           
i++;
       }
    }

Не забудьте разрешить автоторговлю в терминале. Можно работать как в одном из направлений buy или sell, так и в двух одновременно, т.е. в противоположных. Скрипт просто "бросаете" на нужный график, устанавливаете параметры (их описание я указал в коде) и нажимаете "OK". Удачи, трейдер.
Цитата:
Сообщение от lightsentinel Посмотреть сообщение
и что бы в определенных ордерах стоп подтягивался, если возможно ?
А вот для этого уже не скрипт нужен, а программа-советник, которую именуют "трал, тральщик и т.п.". В сети их много в свободном доступе. Скачиваете, устанавливаете на график, в параметрах тральщика указываете magic ордеров, открытых скриптом, и он их будет тралить. Тральщиков бывает много: простой с заданным шагом, по фракталам и по индикаторам, например, ATR. Выбирайте, как говорится, на вкус.
Вложения
Тип файла: zip openorders_for_mmgp.zip (899 байт, 29 просмотров)

Последний раз редактировалось Владислав Сергеев; 25.03.2015 в 14:11.
Владислав Сергеев вне форума
Сказали спасибо:
lightsentinel (26.03.2015)
Старый 26.03.2015, 22:59
#6
Любитель
 
Пол: Мужской
Адрес: Беларусь
Инвестирую в: Свой бизнес
Регистрация: 17.01.2009
Сообщений: 971
Благодарностей: 67
Автор темы Re: Открывать сразу несколько ордеров

Вот это конечно спасибо, а вот если бы еще была возможность на каждый ордер выставлять разные теик и сел стом, возможно такое ?

После того как на график кидаем скрипт, сделка открывается сама или при нажатии? еще не ставил, собираюсь поставить.

А в тральщике есть возможность чтоб от потягивал стоп только у одного ордера ?

добавлено через 23 минуты
и вот этот п. не понял

флаг разрешающий/запрещающий продажи

Последний раз редактировалось lightsentinel; 26.03.2015 в 23:22. Причина: Добавлено сообщение
lightsentinel вне форума
Старый 26.03.2015, 23:55
#7
Мастер
 
Имя: Владислав
Пол: Мужской
Возраст: 48
Инвестирую в: Свой бизнес
Регистрация: 09.04.2011
Сообщений: 2,330
Благодарностей: 1,862

награды Волшебный горшочек 
Re: Открывать сразу несколько ордеров

Цитата:
Сообщение от lightsentinel Посмотреть сообщение
а вот если бы еще была возможность на каждый ордер выставлять разные теик и сел стом, возможно такое ?
Возможно. Просто в коде объявляем массив тейк профитов и стоп лоссов и для i-той позиции берем тейк и стоп из соответствующего массива.
В коде комментарии, разбирайтесь:
PHP код:
//+------------------------------------------------------------------+
//|                                           openorder_for_mmgp.mq4 |
//+------------------------------------------------------------------+
#property copyright "Влад Сергеев для mmgp"
#property version   "2.00"
#property strict
#property script_show_inputs

input int      orders 4;          //всего ордеров в серии
input bool     buy true;          //флаг разрешающий/запрещающий покупки
input bool     sell false;        //флаг разрешающий/запрещающий продажи
input int      magic 100500;      //уникальный номер для ордеров, открываемых этим скриптом
input double   lot 0.01;          //объем каждого ордера серии
int            tp[] = {100,150,200,250};  //массив тейк профитов, в пунктах  
int            sl[] = {100,150,200,250};  //массив стоп лоссов, в пунктах
input int      slip 2;            //допустимое проскальзывание на открытии, в пунктах (для ECN, где открытие по рынку - игнор)

void OnStart()
{
    
int i 0;
    
int ticket 0;
    if ( 
buy )   {
       while ( 
orders )    {     
       
RefreshRates();
           
ticket OrderSend (Symbol(), OP_BUYlotNormalizeDouble(AskDigits), slip00""magic0clrBlue);   
           if ( 
ticket !=-) {
              if ( 
OrderSelect (ticketSELECT_BY_TICKETMODE_TRADES) )  {
                  
OrderModify (ticketOrderOpenPrice(), NormalizeDouble(OrderOpenPrice()-sl[i]*PointDigits), NormalizeDouble(OrderOpenPrice()+tp[i]*PointDigits), 0clrBlue);
              }
           }
           
i++;
       }
    }
    
0;
    if ( 
sell )  {
       while ( 
orders )    {     
       
RefreshRates();
           
ticket OrderSend (Symbol(), OP_SELLlotNormalizeDouble(BidDigits), slip00""magic0clrRed);   
           if ( 
ticket !=-) {
              if ( 
OrderSelect (ticketSELECT_BY_TICKETMODE_TRADES) )  {
                  
OrderModify (ticketOrderOpenPrice(), NormalizeDouble(OrderOpenPrice()+sl[i]*PointDigits), NormalizeDouble(OrderOpenPrice()-tp[i]*PointDigits), 0clrRed);
              }
           }
           
i++;
       }
    }

добавлено через 7 минут
Цитата:
Сообщение от lightsentinel Посмотреть сообщение
После того как на график кидаем скрипт, сделка открывается сама или при нажатии?
Открывается окно с параметрами скрипта. Если ничего не менять, то просто жмем "ОК". Сделки начнут открываться. Если надо изменить, то меняем и жмем "ОК". В варианте с массивами ТП и СЛ параметры массивов уже придется менять в коде, т.к. изменение параметров массивов через интерфейс параметров не поддерживается в МТ4.

Цитата:
Сообщение от lightsentinel Посмотреть сообщение
А в тральщике есть возможность чтоб от потягивал стоп только у одного ордера ?
Это все зависит от того, какой Вы тральщик себе в сети подберете.

Цитата:
Сообщение от lightsentinel Посмотреть сообщение
флаг разрешающий/запрещающий продажи
Что тут не понятного. Две флаговых переменных buy и sell. Одна разрешает/запрещает покупки, а другая продажи.
И бесплатный совет. Если не понимаете смысла MQL4 программ, то не пытайтесь зарабатывать с помощью скриптов и советников. Иначе дров наломаете. Я даже уверен, что Вы не совсем поняли, как скрипт работает. И уверен, что Вы неправильно сформулировали первоначальное задание

Последний раз редактировалось Владислав Сергеев; 27.03.2015 в 00:19. Причина: Добавлено сообщение
Владислав Сергеев вне форума
Сказали спасибо:
lightsentinel (27.03.2015)
Старый 27.03.2015, 00:18
#8
Любитель
 
Пол: Мужской
Адрес: Беларусь
Инвестирую в: Свой бизнес
Регистрация: 17.01.2009
Сообщений: 971
Благодарностей: 67
Автор темы Re: Открывать сразу несколько ордеров

Может понял, может нет. Мне надо было чтоб в каком направлении я нажал открыть ордера чтоб в том направлении открыл с такими настроиками которые я вписал заранее. Вот и все) вроде не чего нет сложного. Вы не так меня поняли ?
lightsentinel вне форума
Сказали спасибо:
Старый 27.03.2015, 00:22
#9
Мастер
 
Имя: Владислав
Пол: Мужской
Возраст: 48
Инвестирую в: Свой бизнес
Регистрация: 09.04.2011
Сообщений: 2,330
Благодарностей: 1,862

награды Волшебный горшочек 
Re: Открывать сразу несколько ордеров

Цитата:
Сообщение от lightsentinel Посмотреть сообщение
Вы не так меня поняли ?
Именно это скрипт и делает. Открывает серию ордеров по рынку (практически по одной цене).
Просто я подумал, что Вы подразумеваете отложенные ордера с разными параметрами, которые бы активизировались по мере движения цены.
Но если все так, как Вы пишите, то скрипт самое оно.
Владислав Сергеев вне форума
Сказали спасибо:
lightsentinel (27.03.2015)
Старый 27.03.2015, 00:57
#10
Любитель
 
Пол: Мужской
Адрес: Беларусь
Инвестирую в: Свой бизнес
Регистрация: 17.01.2009
Сообщений: 971
Благодарностей: 67
Автор темы Re: Открывать сразу несколько ордеров

Цитата:
Сообщение от Владислав Сергеев Посмотреть сообщение
Именно это скрипт и делает. Открывает серию ордеров по рынку (практически по одной цене).
Просто я подумал, что Вы подразумеваете отложенные ордера с разными параметрами, которые бы активизировались по мере движения цены.
Но если все так, как Вы пишите, то скрипт самое оно.
Добавил, но в лонг открывает, когда 3 ордера иногда 4, стопы один раз проставил и то только на 1 ордере, посл. В шорт открываться вообще не хочет (

добавлено через 4 минуты
и когда сразу в селл и бай открываешь, открывает только в бай, теик и стоп проставился только на 4 ордере.

Последний раз редактировалось lightsentinel; 27.03.2015 в 01:01. Причина: Добавлено сообщение
lightsentinel вне форума
Старый 27.03.2015, 01:08
#11
Мастер
 
Имя: Владислав
Пол: Мужской
Возраст: 48
Инвестирую в: Свой бизнес
Регистрация: 09.04.2011
Сообщений: 2,330
Благодарностей: 1,862

награды Волшебный горшочек 
Re: Открывать сразу несколько ордеров

Цитата:
Сообщение от lightsentinel Посмотреть сообщение
Добавил, но в лонг открывает, когда 3 ордера иногда 4, стопы один раз проставил и то только на 1 ордере, посл. В шорт открываться вообще не хочет (

добавлено через 4 минуты
и когда сразу в селл и бай открываешь, открывает только в бай, теик и стоп проставился только на 4 ордере.
Журнал надо читать (вкладка "Журнал", вкладка "Эксперты"). Чтобы в шорт открывался надо параметры настроить. buy=false sell=true. Говорю же, дров наломаете.
Что хоть за брокер? Я бы у себя посмотрел. И параметры дайте. Может, Вы слишком близко параметры указываете, а брокер ограничения накладывает. Может, торговый поток занят, а скрипт это не проверяет и т.д. и т.п. У меня работает.

И тип счета-то какой? Маркет или инстант? Возможно, инстант и реквотит поэтому. А проверки на реквоты в скрипте нет. Он для маркета идеален. А для инстанта надо проверки дополнительные вводить.
Миниатюры
Нажмите на изображение для увеличения
Название: forum1.png
Просмотров: 191
Размер:	21.4 Кб
ID:	122771  

Последний раз редактировалось Владислав Сергеев; 27.03.2015 в 01:27.
Владислав Сергеев вне форума
Сказали спасибо:
lightsentinel (27.03.2015)
Старый 27.03.2015, 01:26
#12
Любитель
 
Пол: Мужской
Адрес: Беларусь
Инвестирую в: Свой бизнес
Регистрация: 17.01.2009
Сообщений: 971
Благодарностей: 67
Автор темы Re: Открывать сразу несколько ордеров

Цитата:
Сообщение от Владислав Сергеев Посмотреть сообщение
Журнал надо читать (вкладка "Журнал", вкладка "Эксперты"). Чтобы в шорт открывался надо параметры настроить. buy=false sell=true. Говорю же, дров наломаете.
Что хоть за брокер? Я бы у себя посмотрел. У меня работает.
Все работает, стопы рядом очень были, из-за этого не ставил.

А работает все хорошо, большое спасибо.

И вопрос, на последок, как увеличивать или уменьшить кол-во ордеров, и ставить разный к примеру лот на разных ордерах, возможно?

Последний раз редактировалось lightsentinel; 27.03.2015 в 01:30.
lightsentinel вне форума
Старый 27.03.2015, 01:35
#13
Мастер
 
Имя: Владислав
Пол: Мужской
Возраст: 48
Инвестирую в: Свой бизнес
Регистрация: 09.04.2011
Сообщений: 2,330
Благодарностей: 1,862

награды Волшебный горшочек 
Re: Открывать сразу несколько ордеров

Цитата:
Сообщение от lightsentinel Посмотреть сообщение
стопы рядом очень были
Оно таки :
Цитата:
Сообщение от Владислав Сергеев Посмотреть сообщение
И параметры дайте. Может, Вы слишком близко параметры указываете, а брокер ограничения накладывает.
Цитата:
Сообщение от lightsentinel Посмотреть сообщение
ставить разный к примеру лот на разных ордерах, возможно?
Легко. По аналогии с массивами профитов и лосей:
PHP код:
//+------------------------------------------------------------------+
//|                                           openorder_for_mmgp.mq4 |
//+------------------------------------------------------------------+
#property copyright "Влад Сергеев для mmgp"
#property version   "3.00"
#property strict
#property script_show_inputs

input int      orders 4;          //всего ордеров в серии
input bool     buy true;          //флаг разрешающий/запрещающий покупки
input bool     sell false;        //флаг разрешающий/запрещающий продажи
input int      magic 100500;      //уникальный номер для ордеров, открываемых этим скриптом
double         lot[] = {0.010.010.010.01};  //массив объемов ордеров серии
int            tp[] = {100,150,200,250};  //массив тейк профитов, в пунктах  
int            sl[] = {100,150,200,250};  //массив стоп лоссов, в пунктах
input int      slip 2;            //допустимое проскальзывание на открытии, в пунктах (для ECN, где открытие по рынку - игнор)

void OnStart()
{
    
int i 0;
    
int ticket 0;
    if ( 
buy )   {
       while ( 
orders )    {     
       
RefreshRates();
           
ticket OrderSend (Symbol(), OP_BUYlot[i], NormalizeDouble(AskDigits), slip00""magic0clrBlue);   
           if ( 
ticket !=-) {
              if ( 
OrderSelect (ticketSELECT_BY_TICKETMODE_TRADES) )  {
                  
OrderModify (ticketOrderOpenPrice(), NormalizeDouble(OrderOpenPrice()-sl[i]*PointDigits), NormalizeDouble(OrderOpenPrice()+tp[i]*PointDigits), 0clrBlue);
              }
           }
           
i++;
       }
    }
    
0;
    if ( 
sell )  {
       while ( 
orders )    {     
       
RefreshRates();
           
ticket OrderSend (Symbol(), OP_SELLlot[i], NormalizeDouble(BidDigits), slip00""magic0clrRed);   
           if ( 
ticket !=-) {
              if ( 
OrderSelect (ticketSELECT_BY_TICKETMODE_TRADES) )  {
                  
OrderModify (ticketOrderOpenPrice(), NormalizeDouble(OrderOpenPrice()+sl[i]*PointDigits), NormalizeDouble(OrderOpenPrice()-tp[i]*PointDigits), 0clrRed);
              }
           }
           
i++;
       }
    }

Цитата:
Сообщение от lightsentinel Посмотреть сообщение
как увеличивать кол-во ордеров
в скрипте есть переменная orders она и определяет число ордеров в серии. Соответственно, размерность массивов lot, tp и sl должна быть не меньше числа orders (больше можно, меньше - нет).
Для счетов с исполнением инстант, чтобы не реквотило есть такая переменная в скрипте slip, которая определяет допустимое проскальзывание. Естественно, на маркет-счетах параметр игнорируется.

Последний раз редактировалось Владислав Сергеев; 27.03.2015 в 01:44.
Владислав Сергеев вне форума
Сказали спасибо:
lightsentinel (27.03.2015)
Старый 27.03.2015, 01:57
#14
Любитель
 
Пол: Мужской
Адрес: Беларусь
Инвестирую в: Свой бизнес
Регистрация: 17.01.2009
Сообщений: 971
Благодарностей: 67
Автор темы Re: Открывать сразу несколько ордеров

Цитата:
Сообщение от Владислав Сергеев Посмотреть сообщение
Оно таки :



Легко. По аналогии с массивами профитов и лосей:
PHP код:
//+------------------------------------------------------------------+
//|                                           openorder_for_mmgp.mq4 |
//+------------------------------------------------------------------+
#property copyright "Влад Сергеев для mmgp"
#property version   "3.00"
#property strict
#property script_show_inputs

input int      orders 4;          //всего ордеров в серии
input bool     buy true;          //флаг разрешающий/запрещающий покупки
input bool     sell false;        //флаг разрешающий/запрещающий продажи
input int      magic 100500;      //уникальный номер для ордеров, открываемых этим скриптом
double         lot[] = {0.010.010.010.01};  //массив объемов ордеров серии
int            tp[] = {100,150,200,250};  //массив тейк профитов, в пунктах  
int            sl[] = {100,150,200,250};  //массив стоп лоссов, в пунктах
input int      slip 2;            //допустимое проскальзывание на открытии, в пунктах (для ECN, где открытие по рынку - игнор)

void OnStart()
{
    
int i 0;
    
int ticket 0;
    if ( 
buy )   {
       while ( 
orders )    {     
       
RefreshRates();
           
ticket OrderSend (Symbol(), OP_BUYlot[i], NormalizeDouble(AskDigits), slip00""magic0clrBlue);   
           if ( 
ticket !=-) {
              if ( 
OrderSelect (ticketSELECT_BY_TICKETMODE_TRADES) )  {
                  
OrderModify (ticketOrderOpenPrice(), NormalizeDouble(OrderOpenPrice()-sl[i]*PointDigits), NormalizeDouble(OrderOpenPrice()+tp[i]*PointDigits), 0clrBlue);
              }
           }
           
i++;
       }
    }
    
0;
    if ( 
sell )  {
       while ( 
orders )    {     
       
RefreshRates();
           
ticket OrderSend (Symbol(), OP_SELLlot[i], NormalizeDouble(BidDigits), slip00""magic0clrRed);   
           if ( 
ticket !=-) {
              if ( 
OrderSelect (ticketSELECT_BY_TICKETMODE_TRADES) )  {
                  
OrderModify (ticketOrderOpenPrice(), NormalizeDouble(OrderOpenPrice()+sl[i]*PointDigits), NormalizeDouble(OrderOpenPrice()-tp[i]*PointDigits), 0clrRed);
              }
           }
           
i++;
       }
    }


в скрипте есть переменная orders она и определяет число ордеров в серии. Соответственно, размерность массивов lot, tp и sl должна быть не меньше числа orders (больше можно, меньше - нет).
Для счетов с исполнением инстант, чтобы не реквотило есть такая переменная в скрипте slip, которая определяет допустимое проскальзывание. Естественно, на маркет-счетах параметр игнорируется.
Со всем разобрался, спасибо!

Все работает хорошо)

Пытался сам увеличить кол-во ордеров и ост. параметров, но с исходными данными работает, как только в когда добавляю к примеру: 5 ордеров, и соответственно добавляю по параметру. селл, стоп, и лот. по 1 добавляю. не работает Не существенно, а так на будущие хотел узнать, т.к. пока 4 ордера хватает.
lightsentinel вне форума
Старый 27.03.2015, 02:06
#15
Мастер
 
Имя: Владислав
Пол: Мужской
Возраст: 48
Инвестирую в: Свой бизнес
Регистрация: 09.04.2011
Сообщений: 2,330
Благодарностей: 1,862

награды Волшебный горшочек 
Re: Открывать сразу несколько ордеров

Не так, значит, добавляете.
Вот так надо:
4 ордера:
PHP код:
input int      orders 4;
double         lot[] = {0.010.010.010.01};
int            tp[] = {100150200250};
int            sl[] = {100150200250}; 
5 ордеров:
PHP код:
input int      orders 5;
double         lot[] = {0.010.010.010.010.01};
int            tp[] = {100150200250300};
int            sl[] = {100150200250300}; 
6 ордеров:
PHP код:
input int      orders 6;
double         lot[] = {0.010.010.010.010.010.01};
int            tp[] = {100150200250300350};
int            sl[] = {100150200250300350}; 
Принцип понятен?
Владислав Сергеев вне форума
Сказали спасибо:
lightsentinel (27.03.2015)
Старый 27.03.2015, 02:08
#16
Любитель
 
Пол: Мужской
Адрес: Беларусь
Инвестирую в: Свой бизнес
Регистрация: 17.01.2009
Сообщений: 971
Благодарностей: 67
Автор темы Re: Открывать сразу несколько ордеров

Так и делал. Еще раз попробую. И еще раз спасибо
lightsentinel вне форума
Старый 16.09.2015, 14:13
#17
Любитель
 
Пол: Мужской
Адрес: Беларусь
Инвестирую в: Свой бизнес
Регистрация: 17.01.2009
Сообщений: 971
Благодарностей: 67
Автор темы Re: Открывать сразу несколько ордеров

Цитата:
Сообщение от Владислав Сергеев Посмотреть сообщение
...
А можно сделать так, что бы если стоп сбивает то он открывал n-кол-во сделок в обратную сторону ?)

добавлено через 1 минуту
Или это отсроченные будут открываться?

Или что бы отложенные так же по схожей схеме за стопами выставлял в обратную сторону?

Последний раз редактировалось lightsentinel; 16.09.2015 в 14:21. Причина: Добавлено сообщение
lightsentinel вне форума
Старый 07.07.2016, 01:35
#18
Интересующийся
 
Пол: Мужской
Регистрация: 15.04.2013
Сообщений: 19
Благодарностей: 1
Цитата:
Сообщение от Владислав Сергеев Посмотреть сообщение
Держите. Я сегодня добрый. Набросал код скрипта за десяток минут. Если заработаете, то найдете меня и отблагодарите
PHP код:
Код:
 
Код:
//+------------------------------------------------------------------+
//|******************************************openorders_for_mmgp.mq4*|
//+------------------------------------------------------------------+
#property*copyright*"Влад*Сергеев*для*mmgp"
#property*version***"1.00"
#property*strict
#property*script_show_inputs

input*int******orders*=*4;******//всего*ордеров*в*серии
input*bool*****buy*=*true;******//флаг*разрешающий/запрещающий*покупки
input*bool*****sell*=*false;****//флаг*разрешающий/запрещающий*продажи
input*int******magic*=*100500;**//уникальный*номер*для*ордеров,*открываемых*этим*скриптом
input*double***lot*=*0.01;******//объем*каждого*ордера*серии
input*int******tp*=*100;********//тейк*профит,*в*пунктах
input*int******sl*=*100;********//стоп*лосс,*в*пунктах
input*int******slip*=*2;********//допустимое*проскальзывание*на*открытии,*в*пунктах*(для*ECN,*где*открытие*по*рынку*-*игнор)

void*OnStart()
{
****int*i*=*0;
****int*ticket*=*0;
****if*(*buy*)***{
*******while*(*i*<*orders*)****{*****
***********RefreshRates();
***********ticket*=*OrderSend*(Symbol(),*OP_BUY,*lot,*NormalizeDouble(Ask,*Digits),*slip,*0,*0,*"",*magic,*0,*clrBlue);***
***********if*(*ticket*!=-1*)*{
**************if*(*OrderSelect*(ticket,*SELECT_BY_TICKET,*MODE_TRADES)*)**{
******************OrderModify*(ticket,*OrderOpenPrice(),*NormalizeDouble(OrderOpenPrice()-sl*Point,*Digits),*NormalizeDouble(OrderOpenPrice()+tp*Point,*Digits),*0,*clrBlue);
**************}
***********}
***********i++;
*******}
****}
****i*=*0;
****if*(*sell*)**{
*******while*(*i*<*orders*)****{*****
***********RefreshRates();
***********ticket*=*OrderSend*(Symbol(),*OP_SELL,*lot,*NormalizeDouble(Bid,*Digits),*slip,*0,*0,*"",*magic,*0,*clrRed);***
***********if*(*ticket*!=-1*)*{
**************if*(*OrderSelect*(ticket,*SELECT_BY_TICKET,*MODE_TRADES)*)**{
******************OrderModify*(ticket,*OrderOpenPrice(),*NormalizeDouble(OrderOpenPrice()+sl*Point,*Digits),*NormalizeDouble(OrderOpenPrice()-tp*Point,*Digits),*0,*clrRed);
**************}
***********}
***********i++;
*******}
****}
}*
Не забудьте разрешить автоторговлю в терминале. Можно работать как в одном из направлений buy или sell, так и в двух одновременно, т.е. в противоположных. Скрипт просто "бросаете" на нужный график, устанавливаете параметры (их описание я указал в коде) и нажимаете "OK". Удачи, трейдер.
А если мне не надо, чтобы сразу ставился стоплосс и тейкпрофит? Как это сделать?
Mihail51 вне форума
Старый 07.07.2016, 15:51
#19
Любитель
 
Пол: Мужской
Адрес: Беларусь
Инвестирую в: Свой бизнес
Регистрация: 17.01.2009
Сообщений: 971
Благодарностей: 67
Цитата:
Сообщение от Mihail51 Посмотреть сообщение
А если мне не надо, чтобы сразу ставился стоплосс и тейкпрофит? Как это сделать?
Там вроде все в настройках есть!
lightsentinel вне форума
Старый 16.03.2018, 22:01
#20
 
Регистрация: 16.03.2018
Сообщений: 1
Благодарностей: 0
Цитата:
Сообщение от Владислав Сергеев Посмотреть сообщение
Держите. Я сегодня добрый. Набросал код скрипта за десяток минут. Если заработаете, то найдете меня и отблагодарите
PHP код:
Код:
 
Код:
//+------------------------------------------------------------------+
//|******************************************openorders_for_mmgp.mq4*|
//+------------------------------------------------------------------+
#property*copyright*"Влад*Сергеев*для*mmgp"
#property*version***"1.00"
#property*strict
#property*script_show_inputs

input*int******orders*=*4;******//всего*ордеров*в*серии
input*bool*****buy*=*true;******//флаг*разрешающий/запрещающий*покупки
input*bool*****sell*=*false;****//флаг*разрешающий/запрещающий*продажи
input*int******magic*=*100500;**//уникальный*номер*для*ордеров,*открываемых*этим*скриптом
input*double***lot*=*0.01;******//объем*каждого*ордера*серии
input*int******tp*=*100;********//тейк*профит,*в*пунктах
input*int******sl*=*100;********//стоп*лосс,*в*пунктах
input*int******slip*=*2;********//допустимое*проскальзывание*на*открытии,*в*пунктах*(для*ECN,*где*открытие*по*рынку*-*игнор)

void*OnStart()
{
****int*i*=*0;
****int*ticket*=*0;
****if*(*buy*)***{
*******while*(*i*<*orders*)****{*****
***********RefreshRates();
***********ticket*=*OrderSend*(Symbol(),*OP_BUY,*lot,*NormalizeDouble(Ask,*Digits),*slip,*0,*0,*"",*magic,*0,*clrBlue);***
***********if*(*ticket*!=-1*)*{
**************if*(*OrderSelect*(ticket,*SELECT_BY_TICKET,*MODE_TRADES)*)**{
******************OrderModify*(ticket,*OrderOpenPrice(),*NormalizeDouble(OrderOpenPrice()-sl*Point,*Digits),*NormalizeDouble(OrderOpenPrice()+tp*Point,*Digits),*0,*clrBlue);
**************}
***********}
***********i++;
*******}
****}
****i*=*0;
****if*(*sell*)**{
*******while*(*i*<*orders*)****{*****
***********RefreshRates();
***********ticket*=*OrderSend*(Symbol(),*OP_SELL,*lot,*NormalizeDouble(Bid,*Digits),*slip,*0,*0,*"",*magic,*0,*clrRed);***
***********if*(*ticket*!=-1*)*{
**************if*(*OrderSelect*(ticket,*SELECT_BY_TICKET,*MODE_TRADES)*)**{
******************OrderModify*(ticket,*OrderOpenPrice(),*NormalizeDouble(OrderOpenPrice()+sl*Point,*Digits),*NormalizeDouble(OrderOpenPrice()-tp*Point,*Digits),*0,*clrRed);
**************}
***********}
***********i++;
*******}
****}
}*
Не забудьте разрешить автоторговлю в терминале. Можно работать как в одном из направлений buy или sell, так и в двух одновременно, т.е. в противоположных. Скрипт просто "бросаете" на нужный график, устанавливаете параметры (их описание я указал в коде) и нажимаете "OK". Удачи, трейдер.

А вот для этого уже не скрипт нужен, а программа-советник, которую именуют "трал, тральщик и т.п.". В сети их много в свободном доступе. Скачиваете, устанавливаете на график, в параметрах тральщика указываете magic ордеров, открытых скриптом, и он их будет тралить. Тральщиков бывает много: простой с заданным шагом, по фракталам и по индикаторам, например, ATR. Выбирайте, как говорится, на вкус.
Здравствауйте, я ищу робота который будет выставлять одновременно 2 противоположенные сделки с указаными тп и сл в насройках и после закрытия этих двух сделок не важно плюс или минус открывает зразу же 2 еще с такими же сл и тп ну и так далее, вот скрипт ваш нашел на форуме вроде то что нужно только можно это как то автоматизировать ?? робот есть такой который мне надо но увы он уже не хочет работать (((
vshivtsev2 вне форума
Войдите, чтобы оставить комментарий.
Быстрый переход
Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Торговые Сигналы, Управление Активами, Открытие Ордеров koolpay Торговые сигналы 3 18.11.2014 15:16
Нкорректное исполнение ордеров у брокера biznesman85 Общие вопросы работы Брокеров 13 06.11.2014 17:14
Открытие ордеров на закрытии рынка KeeperPro Торговые стратегии 12 13.01.2013 14:50
Открытие и отмена отложенных ордеров mpak59rus Программирование на языке MQL (Meta Quotes Language) 3 12.05.2011 15:02
Копирование ордеров Almazik Программное обеспечение 12 20.10.2008 12:31