Обсуждение реализации советников. - страница 7

 
здравствуйте коллеги огрооооомнейшая просьба кто сможет создать советник на основе 2х индикаторов который открывал и закрывал бы сделки на пересечениях смотрите фото, сама пробовала ничего не получилось(((((
 
katrina87:
здравствуйте коллеги огрооооомнейшая просьба кто сможет создать советник на основе 2х индикаторов который открывал и закрывал бы сделки на пересечениях смотрите фото, сама пробовала ничего не получилось(((((

Я сам не пользовался. Просто встречал в кодобазе его. Посмотрите, может вам подойдёт. И кстати в кодобазе есть еще такие советники. Можно в гугле сайт указывать, на котором искать.  https://www.mql5.com/ru/code/12375

Советник на основе отскока от границы канала МА
Советник на основе отскока от границы канала МА
  • www.mql5.com
Для торговли используются показания индикатора Moving Average. Если цена отклонилась от линии Moving Average на определенное количество пунктов, то выставляется ордер в сторону линии Moving Average. Советник может приносить прибыль, но она получается маленькой. Также для него требуется большой депозит. На рисунке сплошная красная линия —...
 
здравствуйте хочу написать торгового робота, идея простая и гениальная. Для начала мне нужно, чтобы индикатор уровней поддержки сопротивления выводил силу этих самых уровней например: High middle low. есть какие нибудь предложения? заранее всем спасибо.   
 
paradisehell1:
здравствуйте хочу написать торгового робота, идея простая и гениальная. Для начала мне нужно, чтобы индикатор уровней поддержки сопротивления выводил силу этих самых уровней например: High middle low. есть какие нибудь предложения? заранее всем спасибо.   

Фриланс спасет Гиганта Мысли и Отца Русской Демократии.

 
paradisehell1:
здравствуйте хочу написать торгового робота, идея простая и гениальная. Для начала мне нужно, чтобы индикатор уровней поддержки сопротивления выводил силу этих самых уровней например: High middle low. есть какие нибудь предложения? заранее всем спасибо.   

Для меня неочевидно что эта идея гениальная. По этому нет и мотивации. Не берусь за кого то говорить, но что-то мне подсказывает, что с ними так же. Можете так всё обставить. Выложить статистику, что торговали по этой системе вручную на демо или реале, пару месяцев хотя бы. Сколько % в мес заработали, какой был уровень маржи и просадка. Если там интересные показатели, то легко можно найти человека, который вам и бесплатно напишет. А так, можете поискать в кодобезе чтото. Ну и к слову, работа программистов стоит очень дешево на этом сайте.

 
Здравствуйте! Я практически на 100% уверен, что мой вопрос уже неоднократно поднимался. Поэтому буду очень благодарен, если мне кто-нибудь подскажет, где искать. Вопрос - как реализовать в советнике возможность прекращения торговли при достижении определенного профита? Допустим, прибыль составила 200$ - всё, сегодня больше не торгуем.
 
altec3:
Здравствуйте! Я практически на 100% уверен, что мой вопрос уже неоднократно поднимался. Поэтому буду очень благодарен, если мне кто-нибудь подскажет, где искать. Вопрос - как реализовать в советнике возможность прекращения торговли при достижении определенного профита? Допустим, прибыль составила 200$ - всё, сегодня больше не торгуем.

Это для мт4, или нужно для мт5 ?

Сразу перед открытием позиции поставить проверку, если профит больше за период - выход

void OnTick()
 {
 ...
 if(GetProfitHistoryInCurrency(_Symbol, 0, Magic) > 200) // 0 - сегодня, 1 - вчера, 2 -позавчера
  return;
 
 OrderSend(...);


Почитайте всю ветку, там есть нужный вам код:

Форум по трейдингу, автоматическим торговым системам и тестированию торговых стратегий

как можно посчитать в ЕА количество закрытых ордеров

Vitaly Muzichenko, 2016.04.12 10:36

  

//===============================================================================================
//---------------------- Возвращает профит за выбранный период с истории -----------------------+
//===============================================================================================
double GetProfitHistoryInCurrency(string symb="0", int index=-1, int mg=-1) {
 if(symb=="0") { symb=Symbol();}
 datetime DailyStartTime=iTime(symb,PERIOD_D1,index);
 double DailyProfit=0;
  for(int i=OrdersHistoryTotal()-1; i>=0; i--) {
   if(OrderSelect(i,SELECT_BY_POS,MODE_HISTORY)) {
    if((OrderSymbol()==symb || symb=="") && (mg<0 || OrderMagicNumber()==mg)) {
     if((OrderCloseTime()>=DailyStartTime && OrderCloseTime()<DailyStartTime+86400) || index<0)
      DailyProfit+=(OrderProfit()+OrderCommission()+OrderSwap());
 }}}
  return(DailyProfit);
 }
Использование:  GetProfitHistoryInCurrency(_Symbol, 0, Magic); // 0 - сегодня, 1 - вчера, 2 -позавчера

 
Vitaly Muzichenko:

Это для мт4, или нужно для мт5 ?

Сразу перед открытием позиции поставить проверку, если профит больше за период - выход


Почитайте всю ветку, там есть нужный вам код:


Спасибо, обязательно посмотрю! Да, и код нужен для MT5.
 

Добрый день!

Пробую написать функцию, определяющую прибыль за текущие сутки:

//+------------------------------------------------------------------+
//|Функция возвращает прибыль за текущие сутки                       |
//+------------------------------------------------------------------+
double Day_Profit()
  {
//--Запрашиваем историю сделок за последнии сутки
   HistorySelect(TimeCurrent()-PeriodSeconds(PERIOD_D1),TimeCurrent());
   uint     total       =HistoryDealsTotal();   // количество сделок в истории
   ulong    ticket      =0;                     // тикет сделки в истории
   long     type        =0;                     // тип сделки
   double   profit      =0.0;                   // финансовый результат сделки
   double   commission  =0.0;                   // коммиссия по сделке
   double   DayProfit   =0.0;                   // прибыль за текущие сутки
//--- for all deals
   for(uint i=0; i<total; i++)
     {
      if((ticket=HistoryDealGetTicket(i))>0)       //--- если имеются сделки, то...
        {
         profit      =HistoryDealGetDouble(ticket,DEAL_PROFIT);
         commission  =HistoryDealGetDouble(ticket,DEAL_COMMISSION);
         if(HistoryDealGetInteger(ticket,DEAL_TYPE)!=DEAL_TYPE_BALANCE)
           {
            DayProfit+=(profit+commission);
           }
        }
     }
   return (DayProfit);
  }
//+------------------------------------------------------------------+

Подскажите, пожалуйста, как в функции 

HistorySelect (datetime from_date,datetime to_date)
указать период, начинающийся с текущих суток. Понятно, что окончание периода to_date=TimeCurrent(), как корректно указать начало периода from_date, чтобы он начинался именно с 00ч:00м:00с текущих суток?
 
altec3:
Добрый день! Подскажите, пожалуйста, как в функции  указать период, начинающийся с текущих суток. Понятно, что окончание периода to_date=TimeCurrent(), как корректно указать начало периода from_date, чтобы он начинался именно с 00ч:00м:00с текущих суток?

Если предположить, что сегодня был хоть один тик, то алгоритм такой: текущее время отправляем в структуру MqlDateTime. Затем в этой структуре обнуляем часы, минуты и секунду. Остаётся отредактированную структуру преобразовать во время:

//+------------------------------------------------------------------+
//|                                                            1.mq5 |
//|                        Copyright 2020, MetaQuotes Software Corp. |
//|                                             https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2020, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   MqlDateTime STimeCurrent;
   TimeToStruct(TimeCurrent(),STimeCurrent);
   STimeCurrent.hour=0;
   STimeCurrent.min=0;
   STimeCurrent.sec=0;
   datetime start_day=StructToTime(STimeCurrent);
   Print(start_day);
  }
//+------------------------------------------------------------------+


Результат:

2020.09.03 00:00:00
Файлы:
1.mq5  3 kb
Причина обращения: