Шаблон советника

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

LUKA.

САМ ПО СЕБЕ
Доброго времени суток!

Было время, решил шаблон своять(какой бы меня устраивал).

Вроде получилось не плохо.

Написан в свободное время за не большой срок,так что возможно есь ошибки.

Хотя все проверял, работает.

HTML:
Expand Collapse Copy
extern string _P1="- Настройка советника -";
extern bool   ReverseSignal      = False;   // True - Переворачивать сигнал стратегии
extern bool   ClosePosifChange = False;   // Закрывать позиции при обратном сигнале
extern bool   OpenBuy            = True;    // Торговать в Buy
extern bool   OpenSell            = True;    // Торговать в Sell
extern int    MaxOrdersCount   = 2;        // Допустимое общее кол-во ордеров, -1 не ограничено
extern int    MaxBuyCount       = 1;       // Допустимое кол-во Buy ордеров, -1 не ограничено
extern int    MaxSellCount       = 1;       // Допустимое кол-во Sell ордеров, -1 не ограничено
extern double Ficsir_Lot          = 0.01;  // Фиксировоанный лот 
       double Lot                     = 0.01;  // Минимальный размер лота
       double Min_lot                = 0.01;  // Минимальный лот для расчета
       double Max_lot               = 100.0; // Максимальный ло для расчета
extern bool   Dynamic_Lot       = True;  // Использовать динамический лот в % 
extern double Risk                  = 0.5;   // Риск в % от свободных средств на счете
extern double TakeProfit         = 150.0;  // TakeProfit, если 0 то неиспользуем
extern double StopLoss          = 50.0;    // StopLoss, если 0 то неиспользуем
extern int    Magic                 = 12345;  // Магический номер ордеров
       bool   Log                     = True;    // Вывод комментариев
//+----------------------------------------------------------------------------+
 
       string _P2="- Настройка индикатора -";
       double iac_dist              = 0.0;     // AC
       double imacd_dist          = 0.00065; // MACD
//+----------------------------------------------------------------------------+
extern string _P3="- Параметры Безубытка -";
extern int    LP                     = 0;       // Уровень профита, если 0 то неиспользуем
extern int    LP_Step             = 0;       // Уровень безубытка, если 0 то неиспользуем
//+----------------------------------------------------------------------------+
extern string _P4="- Параметры Трала -";
extern bool   On_Off_TR        = True;    // Вкючить, отключить трал 
extern int    TS_Buy             = 30;      // Фиксированный размер трала в Buy
extern int    TS_Sell             = 30;      // Фиксированный размер трала в Sell
extern int    TS_StepBuy       = 3;       // Шаг трала в Buy
extern int    TS_StepSell       = 3;       // Шаг трала в Sell
       bool   TSProfitOnly        = True;    // Тралить только профит  
//+----------------------------------------------------------------------------+
extern string _P5="- Закрыть ордера по % -";
extern double PercentProfit    = 100.00;  // Процент профита
extern double PercentLoss      = 100.00;  // Процент убытка
       bool   DeleteOrders        = False;   // Удалять ордера          
//+----------------------------------------------------------------------------+
extern string _P6="- Параметры времени торгов -";
extern bool   ExpertTime       = True;    // Использовать функцию работы по времени 
extern string TradeDay         = "1,2,3,4,5"; // Дни работы советника 1 = Пн, 5 = Пт. 
extern int    StartHour          = 0;       // Старт в первый день 
extern int    StopsHour         = 23;      // Стоп в крайний день
extern int    Ea.Start           = 0;       // Ежедневный cтарт советника
extern int    Ea.Stop            = 24;      // Ежедневный cтоп Советника
//+----------------------------------------------------------------------------+

Нужно:
1. Поменять _P2="- Настройка индикатора -"; на свои.
2. Поменять //---- Индикаторы для открытия позиции
//---- Условия для открытия позиции в Buy
//---- Условия для открытия позиции в Sell
на свои.
3. Вписать свои условия стратегии в int start() {
//+-------------------------------------------+

//+-------------------------------------------+

Ну вроде все.
Толко не заморачивался с лимитными ордерами и мультовалютностью.

P.S. 1. Будут найдены ошибки, пишем живым кодом.
2. Будут ошибки исправлны , выкладываем файл, с индексом в
названиии,чтобы не путать.
3. Шаблон написан с помощью многих функций
Ким Игорь В. aka KimIV, _http://www.kimiv.ru
для реала, так что для тестера работа не быстрая.
4. Поставил тему статус: Важная-временно,
интереса к шаблону не будет, скинем тему на самотек.

Всем Удачи!
 

Вложения

Последнее редактирование модератором:

Anton_uz

Местный житель
вы не думали о том, что на форексе есть подводные камни
и простые операции типа деления возвращают неправильный результат
 

LUKA.

САМ ПО СЕБЕ
вы не думали о том, что на форексе есть подводные камни
и простые операции типа деления возвращают неправильный результат

Я не гений програмирования.
Если Вы разбераетесь в тонкостях, то исправте и киньте в тему, ребята только спасибо скажут.

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

spezdetal

Активный участник
Я не гений програмирования.
Если Вы разбераетесь в тонкостях, то исправте и киньте в тему, ребята только спасибо скажут.

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

Спасибо за шаблон. Кнопку нажал:-) Вопрос. Как прописать не стандартный индикатор в параметры совы? Хорошо бы это просто ответить в коментах в самом коде. Мы ж только учимся. а так очень полезная штука, этот Ваш шаблон...
 

LUKA.

САМ ПО СЕБЕ
Спасибо за шаблон. Кнопку нажал:-) Вопрос. Как прописать не стандартный индикатор в параметры совы? Хорошо бы это просто ответить в коментах в самом коде. Мы ж только учимся. а так очень полезная штука, этот Ваш шаблон...

iMACD это стандатрный индикатор, для нестандарта,
надо воспользоватся iCustom

и ввести параметры нестандартного индикатора, в данном примера NESTANDAR, названиее нестандартного индикатора и его параметры.

double imacd_0=iMACD (NULL, Times_imacd, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 0);
double icust_0=iCustom(NULL, Times_icust, "NESTANDART", ind_period, ind_slow, 200, 3, 0);
 

LUKA.

САМ ПО СЕБЕ
И в изменяемых параметрах надо указать, к примеру

extern int ind_period = 19; // Период индикатора NESTANDART
extern int ind_slow = 33; // Сдвиг NESTANDART
extern int Times_icust = 15; // Таймфрейм NESTANDART
 

DimOnIs

Активный участник
Неплохой шоблончик! Может кто присобачит этот индюк к этому шаблону? Покажите на примере? У мя чета невыходит...:question:
 

Вложения

LUKA.

САМ ПО СЕБЕ

Вложения

aleks7557

Новичок форума
спасибо за шаблон .очень помогает .хотелось бы дополнить еще функцию закрытия по другим индикаторам и возможность получать сигнал с другого ТФ.
 

LUKA.

САМ ПО СЕБЕ
спасибо за шаблон .очень помогает .хотелось бы дополнить еще функцию закрытия по другим индикаторам и возможность получать сигнал с другого ТФ.

Индикаторы вписаны как пример, можите вписать какие угодно, удалив эти, условия на открытие и условия из шапки.

А получение сигналов с других фреймов,

В ТЕЛО start() впишите к примеру строку:

if(TimeFrame==0)TimeFrame=Period();

В шапке переменных:

extern int TimeFrame = 0; // 0 - таймфрейм графика на котором работает эксперт. Или конкретное значение 1,5,15,30,60,240,1440..

А в любых индикаторах, к примеру какие уже есть:

//---- Индикаторы для открытия позиции

double iac_0 = iAC(NULL, 0, 0);
double imacd_0 = iMACD(NULL, 0, 12, 26, 9, PRICE_CLOSE, MODE_MAIN, 0);

за место красных нулей впишите: TimeFrame
 
Последнее редактирование:

aleks7557

Новичок форума
еще раз спасибо за шаблон и за то что откликнулись.только ваши пояснения для меня еще очень сложны.не могли бы вы в этот шаблон стоящий на М30 прописать этот же индикатор .но с Н4
 

Вложения

ural-pamm

Заблокирован
у меня большая просьба-добавьте в любой шаблон чтобы открывался по свечному патерну вот этому-фрактал из тех баров-по пробою хая или лоу фрактальной свечи. я незнаю как точнее обьяснить но это работает

шаг трейлинг стопа
extern double breakevengain = 10;///////------------------ количество пунктов для перевода ордера в безубыток
extern double breakeven = 20;///////------------------ безубыток
 

Вложения

  • 13.gif
    13.gif
    34,4 КБ · Просмотры: 274
Последнее редактирование:

Milord

Местный знаток
Доброго времени суток!

Было время, решил шаблон своять(какой бы меня устраивал).

Вроде получилось не плохо.

Написан в свободное время за не большой срок,так что возможно есь ошибки.

Хотя все проверял, работает.

HTML:
Expand Collapse Copy
extern string _P1="- Настройка советника -";
extern bool   ReverseSignal      = False;   // True - Переворачивать сигнал стратегии
extern bool   ClosePosifChange = False;   // Закрывать позиции при обратном сигнале
extern bool   OpenBuy            = True;    // Торговать в Buy
extern bool   OpenSell            = True;    // Торговать в Sell
extern int    MaxOrdersCount   = 2;        // Допустимое общее кол-во ордеров, -1 не ограничено
extern int    MaxBuyCount       = 1;       // Допустимое кол-во Buy ордеров, -1 не ограничено
extern int    MaxSellCount       = 1;       // Допустимое кол-во Sell ордеров, -1 не ограничено
extern double Ficsir_Lot          = 0.01;  // Фиксировоанный лот 
       double Lot                     = 0.01;  // Минимальный размер лота
       double Min_lot                = 0.01;  // Минимальный лот для расчета
       double Max_lot               = 100.0; // Максимальный ло для расчета
extern bool   Dynamic_Lot       = True;  // Использовать динамический лот в % 
extern double Risk                  = 0.5;   // Риск в % от свободных средств на счете
extern double TakeProfit         = 150.0;  // TakeProfit, если 0 то неиспользуем
extern double StopLoss          = 50.0;    // StopLoss, если 0 то неиспользуем
extern int    Magic                 = 12345;  // Магический номер ордеров
       bool   Log                     = True;    // Вывод комментариев
//+----------------------------------------------------------------------------+
 
       string _P2="- Настройка индикатора -";
       double iac_dist              = 0.0;     // AC
       double imacd_dist          = 0.00065; // MACD
//+----------------------------------------------------------------------------+
extern string _P3="- Параметры Безубытка -";
extern int    LP                     = 0;       // Уровень профита, если 0 то неиспользуем
extern int    LP_Step             = 0;       // Уровень безубытка, если 0 то неиспользуем
//+----------------------------------------------------------------------------+
extern string _P4="- Параметры Трала -";
extern bool   On_Off_TR        = True;    // Вкючить, отключить трал 
extern int    TS_Buy             = 30;      // Фиксированный размер трала в Buy
extern int    TS_Sell             = 30;      // Фиксированный размер трала в Sell
extern int    TS_StepBuy       = 3;       // Шаг трала в Buy
extern int    TS_StepSell       = 3;       // Шаг трала в Sell
       bool   TSProfitOnly        = True;    // Тралить только профит  
//+----------------------------------------------------------------------------+
extern string _P5="- Закрыть ордера по % -";
extern double PercentProfit    = 100.00;  // Процент профита
extern double PercentLoss      = 100.00;  // Процент убытка
       bool   DeleteOrders        = False;   // Удалять ордера          
//+----------------------------------------------------------------------------+
extern string _P6="- Параметры времени торгов -";
extern bool   ExpertTime       = True;    // Использовать функцию работы по времени 
extern string TradeDay         = "1,2,3,4,5"; // Дни работы советника 1 = Пн, 5 = Пт. 
extern int    StartHour          = 0;       // Старт в первый день 
extern int    StopsHour         = 23;      // Стоп в крайний день
extern int    Ea.Start           = 0;       // Ежедневный cтарт советника
extern int    Ea.Stop            = 24;      // Ежедневный cтоп Советника
//+----------------------------------------------------------------------------+

Нужно:
1. Поменять _P2="- Настройка индикатора -"; на свои.
2. Поменять //---- Индикаторы для открытия позиции
//---- Условия для открытия позиции в Buy
//---- Условия для открытия позиции в Sell
на свои.
3. Вписать свои условия стратегии в int start() {
//+-------------------------------------------+

//+-------------------------------------------+

Ну вроде все.
Толко не заморачивался с лимитными ордерами и мультовалютностью.

P.S. 1. Будут найдены ошибки, пишем живым кодом.
2. Будут ошибки исправлны , выкладываем файл, с индексом в
названиии,чтобы не путать.
3. Шаблон написан с помощью многих функций
Ким Игорь В. aka KimIV, _http://www.kimiv.ru
для реала, так что для тестера работа не быстрая.
4. Поставил тему статус: Важная-временно,
интереса к шаблону не будет, скинем тему на самотек.

Всем Удачи!

при всем уважении к вашим трудам, это не является шаблоном, а только шапкой настроек многих советников, настройки написать - самое легкое в построении советников!ИМХО!
 

LUKA.

САМ ПО СЕБЕ
при всем уважении к вашим трудам, это не является шаблоном, а только шапкой настроек многих советников, настройки написать - самое легкое в построении советников!ИМХО!

А в чем по вашему разница между шаблоном для советников и шапкой настроек многих советников :oops:

По мне одно и тоже.
 

DiZin

Местный знаток
А в чем по вашему разница между шаблоном для советников и шапкой настроек многих советников :oops:

По мне одно и тоже.

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

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

LUKA.

САМ ПО СЕБЕ
Как минимум прописать корректные процедуры открытия/закрытия ордеров, Отслеживание лотность и количества ордеров, а также маржи и средств
Неплохо бы включить несколько алгоритмов трейлинг стопа ..

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


Вы чего заходя в эту тему пива все напиваетесь?

Посмотрите настройки они на русском языке написаны, перечисленное Вами там все есть.

Маржу и средства, не помню писал или нет.
 
Последнее редактирование:

LUKA.

САМ ПО СЕБЕ
Пост для всех умных!

Я не гений программированияю, и я не против что в этой темы выложите людям лучшие варианты шаблонов.

Только спасибо скажу.
 

expforex

Программиров
Привет.
Легкий стартовый шаблон.

для запуска Вашей стратегии, необходимо прописать сигналы от Вашего индикатора в блок:
/* Блок управления сигналом от Вашего индикатора
Создаем переменные для сигналов индикатора
*/
int IndicatorSignal()
{
int Sig=0;
double ExampleMA=iMA(Symbol(),0,20,0,MODE_SMA,PRICE_CLOSE,1); // Пример Вызова МА
double ExampleADX=iADX(Symbol(),0,34,PRICE_CLOSE,MODE_MAIN,1);// Пример Вызова АДХ
double ExampleCustom=iCustom(Symbol(),0,"Moving Averages",20,0,MODE_SMA,1); // Пример вызова пользовательского индикатора
//Указываем Сигналы:
if( ExampleMA<Bid)Sig=1; // Если МА ниже цены БИД - открываемся в бай
if( ExampleMA>Bid)Sig=2; // Если МА выше цены БИД - открываемся в селл
// 1 - бай 2 - селл
return(Sig);
}
 

Вложения

sham69

Активный участник
шаблон советника

Доброго времени суток!

Было время, решил шаблон своять(какой бы меня устраивал).

Вроде получилось не плохо.

Написан в свободное время за не большой срок,так что возможно есь ошибки.

Хотя все проверял, работает.

HTML:
Expand Collapse Copy
extern string _P1="- Настройка советника -";
extern bool   ReverseSignal      = False;   // True - Переворачивать сигнал стратегии
extern bool   ClosePosifChange = False;   // Закрывать позиции при обратном сигнале
extern bool   OpenBuy            = True;    // Торговать в Buy
extern bool   OpenSell            = True;    // Торговать в Sell
extern int    MaxOrdersCount   = 2;        // Допустимое общее кол-во ордеров, -1 не ограничено
extern int    MaxBuyCount       = 1;       // Допустимое кол-во Buy ордеров, -1 не ограничено
extern int    MaxSellCount       = 1;       // Допустимое кол-во Sell ордеров, -1 не ограничено
extern double Ficsir_Lot          = 0.01;  // Фиксировоанный лот 
       double Lot                     = 0.01;  // Минимальный размер лота
       double Min_lot                = 0.01;  // Минимальный лот для расчета
       double Max_lot               = 100.0; // Максимальный ло для расчета
extern bool   Dynamic_Lot       = True;  // Использовать динамический лот в % 
extern double Risk                  = 0.5;   // Риск в % от свободных средств на счете
extern double TakeProfit         = 150.0;  // TakeProfit, если 0 то неиспользуем
extern double StopLoss          = 50.0;    // StopLoss, если 0 то неиспользуем
extern int    Magic                 = 12345;  // Магический номер ордеров
       bool   Log                     = True;    // Вывод комментариев
//+----------------------------------------------------------------------------+
 
       string _P2="- Настройка индикатора -";
       double iac_dist              = 0.0;     // AC
       double imacd_dist          = 0.00065; // MACD
//+----------------------------------------------------------------------------+
extern string _P3="- Параметры Безубытка -";
extern int    LP                     = 0;       // Уровень профита, если 0 то неиспользуем
extern int    LP_Step             = 0;       // Уровень безубытка, если 0 то неиспользуем
//+----------------------------------------------------------------------------+
extern string _P4="- Параметры Трала -";
extern bool   On_Off_TR        = True;    // Вкючить, отключить трал 
extern int    TS_Buy             = 30;      // Фиксированный размер трала в Buy
extern int    TS_Sell             = 30;      // Фиксированный размер трала в Sell
extern int    TS_StepBuy       = 3;       // Шаг трала в Buy
extern int    TS_StepSell       = 3;       // Шаг трала в Sell
       bool   TSProfitOnly        = True;    // Тралить только профит  
//+----------------------------------------------------------------------------+
extern string _P5="- Закрыть ордера по % -";
extern double PercentProfit    = 100.00;  // Процент профита
extern double PercentLoss      = 100.00;  // Процент убытка
       bool   DeleteOrders        = False;   // Удалять ордера          
//+----------------------------------------------------------------------------+
extern string _P6="- Параметры времени торгов -";
extern bool   ExpertTime       = True;    // Использовать функцию работы по времени 
extern string TradeDay         = "1,2,3,4,5"; // Дни работы советника 1 = Пн, 5 = Пт. 
extern int    StartHour          = 0;       // Старт в первый день 
extern int    StopsHour         = 23;      // Стоп в крайний день
extern int    Ea.Start           = 0;       // Ежедневный cтарт советника
extern int    Ea.Stop            = 24;      // Ежедневный cтоп Советника
//+----------------------------------------------------------------------------+
Нужно:
1. Поменять _P2="- Настройка индикатора -"; на свои.
2. Поменять //---- Индикаторы для открытия позиции
//---- Условия для открытия позиции в Buy
//---- Условия для открытия позиции в Sell
на свои.
3. Вписать свои условия стратегии в int start() {
//+-------------------------------------------+

//+-------------------------------------------+

Ну вроде все.
Толко не заморачивался с лимитными ордерами и мультовалютностью.

P.S. 1. Будут найдены ошибки, пишем живым кодом.
2. Будут ошибки исправлны , выкладываем файл, с индексом в
названиии,чтобы не путать.
3. Шаблон написан с помощью многих функций
Ким Игорь В. aka KimIV, _http://www.kimiv.ru
для реала, так что для тестера работа не быстрая.
4. Поставил тему статус: Важная-временно,
интереса к шаблону не будет, скинем тему на самотек.

Всем Удачи!
.
Привет LUKA!Пропиши пожалуйста в свой советник.вот эти индикаторы.буду очень признателен.
 
Последнее редактирование:
Верх