Несколько скриптов для упрощения торговли

  • Автор темы Автор темы cmillion
  • Дата начала Дата начала

cmillion

Гуру форума
Иногда требуется помочь советнику и добавить ордер, но чтобы советник его принял за свой необходим Magic номер, для выставления ордера с таким номером и предназначен этот скрипт.

Переменные:

stoploss - уровень выставления SL, если 0, то SL не выставляется
takeprofit - уровень выставления TP, если 0, то TP не выставляется
Magic - уникальный номер ордера
SELL - открыть ордер SELL
BUY - открыть ордер BUY
Lot - объем ордера
slippage - максимально допустимое отклонение цены для рыночных ордеров


Возможна одновременная установка разнонаправленных ордеров, для этого переменным SELL и BUY установите значение true.

При сбоях связи или резком движении цены, будет 10 попыток выставления ордера, после чего скрипт закончит работу.

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

Удачи! :?:

Другие мои работы
_http://cmillion.narod.ru Программные помощники MQL для работы на финансовых рынках
 

Вложения

cmillion

Гуру форума
Очень нужен такой скрипт ставить отложки

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

extern int stoploss = 50, //уровень выставления SL, если 0, то SL не выставляется
takeprofit = 50, //уровень выставления TP, если 0, то TP не выставляется
delta = 10, //расстояние от текущей цены
MaxOrders = 5, //кол-во ордеров сетки
Magic = 123456; //уникальный номер ордера
extern bool SELL = true, //открыть ордер LIMITSTOP
BUY = true; //открыть ордер LIMITSTOP
extern double Lot = 0.1; //объем ордера
extern double FirstBuyStop = 0; //если 0 то по цене Ask+delta
extern double FirstSellStop = 0; //если 0 то по цене Bid-delta
extern double K_Lot = 1; //увеличение лота с шагом

Более широкий спектр советников и скриптов, выставляющих и удаляющих отложенные ордера Вы всегда можете найти на моем сайте или в отдельной ветке (ссылку на нее могу дать в личке или по почте [email protected])

Удачной торговли!
 

Вложения

cmillion

Гуру форума
скрипт частичного закрытия ордеров при пересечении горизонтальной линии

Работа скрипта.
При старте скрипт выставляет линию, на расстоянии TakeProfit от текущей цены.
При достижении ценой этой горизонтальной линии закрываются прибыльные ордера.
Скрипт закрывает от каждого ордера заданный процент, при значении PercentClose = 100% закрывает ордера полностью.
Далее скрипт заканчивает свою работу


PHP:
Expand Collapse Copy
extern int     TakeProfit     = 30;     //прибыль закрытия ордера в пунктах, на такое расстояние от текущей цены ставим линию Close 
extern double  PercentClose   = 30;     //процент закрытия ордера 
extern int     Magic          = -1;     //если -1 все, если 0 ручные, если есть номер то по конкретному магику.
удачной торговли!
 

Вложения

cmillion

Гуру форума
Советник для оперативного выставления и изменения стопов

Советник ставит линии (красные для sell и синие для buy) и по этим линиям ставит стоп лосс и тейкпрофит. Если линию удалить, то отменятся и соответствующие стопы.
При премещении линии перемещаются и стопы под ними.


PHP:
Expand Collapse Copy
extern bool    BUY            = false;  //разрешить изменять Buy 
extern bool    SELL           = true;   //разрешить изменять Sell 
extern int     Stoploss       = 20,     //стоплосс ордеров 
               Takeprofit     = 20;     //тейкпрофит ордеров 
extern bool    DelStopNoLine  = true;   //удалять стопы при отсутствии линии
 

Вложения

cmillion

Гуру форума
Автоматическая установка стопов.

Советник выставляет стоп лосс и тейк профит у всех позиций текущего инструмента ( и рыночным и отложкам), если выставлено значение менее STOPLEVEL, то советник не меняет стоп.

Переменные:

PHP:
Expand Collapse Copy
stoploss - уровень выставления SL, если 0, то SL не изменяется
takeprofit - уровень выставления TP, если 0, то TP не изменяется  
SetStop.mq4
 

Вложения

KiWi

Заблокирован
хорошо когда советник работает по такой схеме, а скрипты при переключении ТФ сбрасываются
 

cmillion

Гуру форума
Скрипт открытия сетки ордеров

Универсальный скрипт выставления сетки ордеров.

Выставляет сетку отложенных ордеров по Вашему выбору.
Можно выставлять Стоп и/или Лимит ордера в любом сочетании
Можно задавать время жизни ордеров
Можно задавать время выставления ордеров.
Варианты торговых стратегий различны, от торговли на новостях до математических ловушек.
Все зависит от Вашей фантазии.

Параметры

PHP:
Expand Collapse Copy
extern datetime TimeSet        = D'2012.07.20 00:00'; //Время выставления ордеров, если текущее время больше установленного, то выставляются сразу 
extern bool     BuyStop        = true;     //открыть BuyStop ордера  
extern bool     BuyLimit       = true;     //открыть BuyLimit ордера  
extern bool     SellStop       = true;     //открыть SellStop ордера  
extern bool     SellLimit      = true;     //открыть SellLimit ордера  
extern string   __             = ""; 
extern double   FirstBuyStop   = 0;        //цена выставления первого BuyStop ордера, если 0 то первый BuyStop будет выставлен по цене Ask+FirstStop 
extern double   FirstSellStop  = 0;        //цена выставления первого SellStop ордера, если 0 то первый SellStop будет выставлен по цене Bid-FirstStop 
extern double   FirstBuyLimit  = 0;        //цена выставления первого BuyLimit ордера, если 0 то первый BuyLimit будет выставлен по цене Bid-FirstStop 
extern double   FirstSellLimit = 0;        //цена выставления первого SellLimit ордера, если 0 то первый SellLimit будет выставлен по цене Ask+FirstStop 
extern int      FirstStop      = 100;      //расстояние (в пунктах) от текущей цены до первого Stop ордера в случае First..Stop=0  
extern int      FirstLimit     = 50;       //расстояние (в пунктах) от текущей цены до первого Limit ордера в случае First..Limit=0 
extern int      StepStop       = 30;       //расстояние (в пунктах) между Stop ордерами 
extern double   K_StepStop     = 1;        //коэффициент расширения сетки 
extern int      StepLimit      = 30;       //расстояние (в пунктах) между Limit ордерами 
extern double   K_StepLimit    = 1;        //коэффициент расширения сетки 
extern string   _              = ""; 
extern int      Orders         = 5;        //кол-во ордеров сетки 
extern double   LotStop        = 0.5;      //объем первого Stop ордера 
extern double   K_LotStop      = 1;        //умножение лота Stop ордеров  
extern double   Plus_LotStop   = 0;        //добавление лота Stop ордеров  
extern double   LotLimit       = 0.1;      //объем первого Limit ордера 
extern double   K_LotLimit     = 2;        //умножение лота Limit ордеров 
extern double   Plus_LotLimit  = 0;        //добавление лота Limit ордеров 
extern int      stoploss       = 50;       //уровень выставления SL, если 0, то SL не выставляется 
extern int      takeprofit     = 100;      //уровень выставления TP, если 0, то TP не выставляется 
extern int      Expiration     = 1440;     //Срок истечения отложенного ордера в минутах, если 0, то срок не ограничен (1440 - сутки) 
extern int      attempts       = 10;       //кол-во попыток открытия ордера  
extern int      Magic          = 0;        //уникальный номер ордера 
extern string   Order_Comment  = "http://cmillion.narod.ru";
 

Вложения

cmillion

Гуру форума
Скрипт удаления отложенных ордеров

В параметрах можно выбрать тип ордеров, которые необходимо удалить.

Параметры

PHP:
Expand Collapse Copy
extern bool DEL_BUYSTOP = true; 
extern bool DEL_BUYLIMIT = true; 
extern bool DEL_SELLSTOP = true; 
extern bool DEL_SELLLIMIT = true;
 

Вложения

cmillion

Гуру форума
Советник закрытия ордеров при достижении профита

Советник закрытия ордеров при достижении суммарного профита в валюте депозита


Параметры

PHP:
Expand Collapse Copy
extern double ProfitClose     = 15;   //закрывать все ордера при получении профита в валюте депозита
extern double LossClose       = 1000; //закрывать все ордера при получении убытка в валюте депозита
extern bool   AllSymbol       = false;//учитывать все инструменты или только тот, на котором стоит советник
extern bool   AlertON         = false;//сигнал при достижении профита или убытка
extern bool   TradeON         = false;//разрешить советнику закрывать ордера при достижении профита или убытка

Советник закрывает все ордера при достижении заданного размера профита или убытка в валюте депозита.
Советник может работать только по той паре на которую брошен или по всем инструментам счета.
Стопы он не ставит.
Как только прибыль по всем открытым ордерам (если AllSymbol = true то всего счета, если AllSymbol = false то только ордеров текущей валютной пары) достигает уровня ProfitClose (в валюте депозита), то все ордера закроются.Стопы он не ставит. ProfitClose и LossClose указываются в валюте депозита.
Пример:
На Вашем счете работает несколько советников. Они открыли много ордеров на разных валютах.
Как только общая прибыль по счету достигла 15$ (задается в параметрах) или убыток достиг 1000$, все ордера закроются.
 

Вложения

cmillion

Гуру форума
Советник имеет те же функции, что и предыдущий, только закрытие происходит при достижении заданного процента прибыли.

PHP:
Expand Collapse Copy
extern double ProfitClose     = 0.1;    //закрывать все ордера при получении профита в % от депозита
extern bool   AllSymbol       = true; //учитывать все инструменты или только тот, на котором стоит советник
extern int    Magic           = 0;    //0 - учитывать все ордера (с любым Magic номером)
 

Вложения

cmillion

Гуру форума
Скрипт частичного закрытия ордеров при пересечении горизонтальной линии

Работа скрипта.
При старте скрипт выставляет линию, на расстоянии TakeProfit от текущей цены.
При достижении ценой этой горизонтальной линии закрываются прибыльные ордера.
Скрипт закрывает от каждого ордера заданный процент, при значении PercentClose = 100% закрывает ордера полностью.
Далее скрипт заканчивает свою работу
Линию можно перемещать на любую цену.

PHP:
Expand Collapse Copy
extern int     TakeProfit     = 30;     //прибыль закрытия ордера в пунктах, на такое расстояние от текущей цены ставим линию Close
extern double  PercentClose   = 30;     //процент закрытия ордера
extern int     Magic          = -1;     //если -1 все, если 0 ручные, если есть номер то по конкретному магику.


Удачи в торговле!
 

Вложения

8bit

Активный участник
Советник закрытия ордеров при достижении суммарного профита в валюте депозита
А можно такой же скрипт, но только с закрытием по эквити? Например, у меня сейчас по открытым позициям плюс 2000$. Хочу чтобы сделки закрылись или при +1000$ (стоп с прибылью) или +5000$. Ваш скрипт поможет закрыть все сделки, когда будет +5000$, но +1000$ нет.
 

cmillion

Гуру форума
А можно такой же скрипт, но только с закрытием по эквити? Например, у меня сейчас по открытым позициям плюс 2000$. Хочу чтобы сделки закрылись или при +1000$ (стоп с прибылью) или +5000$. Ваш скрипт поможет закрыть все сделки, когда будет +5000$, но +1000$ нет.

Не совсем понимаю. У Вас есть 2000 прибыли и Вы хотите закрыть когда останется 1000 ? Это такой финансовый мазахизм или Вам нужен тралл по профиту, что при откате на 1000 ордера закроются? В обжем здесь про эквити ничего нет, поясните.
 

cmillion

Гуру форума
скрипт открытия ордеров

Иногда требуется помочь советнику, добавить ордер, но чтобы советник его
принял за свой необходим Magic номер, для выставления ордера с таким номером
поможет этот скрипт.
Помимо этого скрипт может быть полезным при работе с брокерами MarketExecution, (это когда они не разрешают устанавливать стопы совместно с открытием ордера).
Скрипт выставляет ордер, а на следующем тике выставляет к нему стопы.
Можно использовать его и как советник для того, чтобы он выставлял стопы всем Вашим ордерам, открытым вручную.

Переменные:

PHP:
Expand Collapse Copy
extern int     stoploss    = 50,       //уровень выставления SL, если 0, то SL не выставляется
               takeprofit  = 50,       //уровень выставления TP, если 0, то TP не выставляется
               Magic       = 777;      //уникальный номер ордера
extern bool    SELL        = true,     //открыть ордер SELL
               BUY         = true;     //открыть ордер BUY
extern double  Lot         = 0.0;      //объем ордера
extern int     Risk        = 1;        //% которым  мы готовы рискнуть, применяется при Lot=0
extern int     slippage    = 5;        //Максимально допустимое отклонение цены для рыночных ордеров
extern bool    MarketExecution = true; //Выставление стопов на следующем тике

Возможна одновременная установка разнонаправленных ордеров, для этого переменным SELL и BUY установите значение true.

При сбоях связи или резком движении цены, будет 10 попыток выставления ордера, после чего скрипт закончит работу.

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

Вложения

cmillion

Гуру форума
cm_StopOrders Mouse

Скрипт выставляет ордер по максимуму / минимуму прошлой свечи плюс минус фильтр.
Стоплосс ставит на противоположный экстремум свечи плюс минус фильтр.
Если перетащить его мышкой на график выше текущей цены, то он ставит BuyStop ордер, если ниже то SellStop ордер.

Параметры

PHP:
Expand Collapse Copy
extern int     Takeprofit        = 0,     //тейкпрофит ордеров 
               фильтр            = 10, 
               Candle            = 1;     //по какой свече ставим ордера (0- текущая  1- прошлая....) 
extern double  Lot               = 0.1;   //лот 
extern int     Magic             = 0;     //уникальный номер ордеров этого советника, если 0 то ведет все ордера, в том числе выставленные вручную 
extern bool    comment           = true;  //выводить информацию на экран
 

Вложения

8bit

Активный участник
Не совсем понимаю. У Вас есть 2000 прибыли и Вы хотите закрыть когда останется 1000 ? Это такой финансовый мазахизм или Вам нужен тралл по профиту, что при откате на 1000 ордера закроются? В обжем здесь про эквити ничего нет, поясните.
Это не мазахизм. Я жду хорошего движения, но не знаю когда оно закончится. Определенную прибыль я получил. Но зачем фиксить ее, если знаю что цена пойдет дальше?
В принципе это тот же трал, но по эквити получается.
 

cmillion

Гуру форума
cm-VirtualTrailingProfit

Это не мазахизм. Я жду хорошего движения, но не знаю когда оно закончится. Определенную прибыль я получил. Но зачем фиксить ее, если знаю что цена пойдет дальше?
В принципе это тот же трал, но по эквити получается.

Есть такой тралл:

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

Вложения

8bit

Активный участник
Все три кидать на график? Или какой-то один?
 
Верх