Бесплатное написание программ

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

dimsanych1

Активный участник
Можете написать индюк для МТ4, который будет как в трейдингвью рисовать синтетический график 2 инструментов по заданной формуле?

1639221930217.png
 

Николяя

Прохожий
Вы обычным текстов выложите, а то этот файл не читается
2 sma и parabolic со стандартными настройками. Вход при пересечении быстрой ма медленную и наличии под/над ценой пораболика. Если в момент т пересечения машек пораболик расположен не там, то ждём ещё две свечи. Стоплосс ставится на параболике, но не менее 30 п и не более 60.если меньше 30 и больше 60, то вход не осуществляется. При противоположном сигнале позиция закрывается по рынку. При прохождении цены 60 п перевод в безубыток. При прохождении ценой 130 п стоплосс ставится на +70 п к цене открытия, а далее переставляется на точку пораболика каждую свечу если параболик под ценой при покупке и над ценой при продаже.
 

guardian4

Интересующийся
Уважаемый cmillion

Есть маленькая просьба, и, надеюсь, не заберет много Вашего времени
Среди Ваших трудов нашел простенький и в тоже время отличный советник cmillion.ru/nevalyashka/
Прошу добавить единственный параметр: значение в пунктах при достижении которого увеличенный ордер может закрыться по СЛ, но при следующем открытии лот будет открываться изначальной лотностью
Например: в параметрах сова установлены значения ТП 100 и СЛ 100 и новый параметр со значением 50. Если произошло увеличение ордера в н-раз, и он достиг прибыли в 50 пунктов, но при этом закроется по СЛ – открывается новый ордер базовой лотностью
 

cmillion

Гуру форума
Уважаемый cmillion

Есть маленькая просьба, и, надеюсь, не заберет много Вашего времени
Среди Ваших трудов нашел простенький и в тоже время отличный советник cmillion.ru/nevalyashka/
Прошу добавить единственный параметр: значение в пунктах при достижении которого увеличенный ордер может закрыться по СЛ, но при следующем открытии лот будет открываться изначальной лотностью
Например: в параметрах сова установлены значения ТП 100 и СЛ 100 и новый параметр со значением 50. Если произошло увеличение ордера в н-раз, и он достиг прибыли в 50 пунктов, но при этом закроется по СЛ – открывается новый ордер базовой лотностью
Добрый день
у советника "неваляшка" существует множество модификаций. Выложите сам советник сюда чтобы понимать какую именно версию Вы просите переделать
 

guardian4

Интересующийся
Добрый день
у советника "неваляшка" существует множество модификаций. Выложите сам советник сюда чтобы понимать какую именно версию Вы просите переделать
Было бы отлично иметь ограничение по времени работы советника. Например указать после какого часа новые ордера базовой лотностью не будут открываться, но увеличенные должны открываться пока не закроются по ТП
 

Вложения

cmillion

Гуру форума
Было бы отлично иметь ограничение по времени работы советника. Например указать после какого часа новые ордера базовой лотностью не будут открываться, но увеличенные должны открываться пока не закроются по ТП
держите
проверьте только сначала на демо счете, а то я не успел проверить
 

Вложения

guardian4

Интересующийся
держите
проверьте только сначала на демо счете, а то я не успел проверить
все отлично, единсвенное что постом выше просил добавить новый параметр, он в приоритете

значение в пунктах при достижении которого увеличенный ордер может закрыться по СЛ, но при следующем открытии лот будет открываться изначальной лотностью
Например: в параметрах сова установлены значения ТП 100 и СЛ 100 и новый параметр со значением 50. Если произошло увеличение ордера в н-раз, и он достиг прибыли в 50 пунктов, но при этом закроется по СЛ – открывается новый ордер базовой лотностью
в таком случаии все будет идеально
 

garry119

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

Вложения

garry119

Гость
Сделайте индикатор разворотных зон на ложных пробоях по принципу Массимилиано Скорпио, который главный аналитик Саксобанка
 
Последнее редактирование модератором:
  • Like
Реакции: saw

garry119

Гость
так выглядит этот паттерн
 

Вложения

  • sfp-pattern-mql4-screen-1017.png
    sfp-pattern-mql4-screen-1017.png
    33,3 КБ · Просмотры: 177
  • sfp-pattern-mql4-screen-2905.png
    sfp-pattern-mql4-screen-2905.png
    35 КБ · Просмотры: 179

darya12rus

Прохожий
Добрый день.
кто сможет поправить индикатор AUTO FIBO RETRACEMENT-V2
Нужно поправить уровни.
Спасибо.
 

MERFY

Местный знаток
Привет! просьба переписать индикатор с МТ5 на МТ4!

Код:
//+------------------------------------------------------------------+
//|                                                      MAScale.mq5 |
//|                        Copyright 2018, MetaQuotes Software Corp. |
//|                             https://mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2018, MetaQuotes Software Corp."
#property link      "https://mql5.com/ru/users/artmedia70"
#property version   "1.00"
#property description "Scale of moving average"
#property indicator_separate_window
#property indicator_buffers 5
#property indicator_plots   1
//--- plot MASC
#property indicator_label1  "MASC"
#property indicator_type1   DRAW_COLOR_HISTOGRAM
#property indicator_color1  clrRoyalBlue,clrOrangeRed,clrDarkGray
#property indicator_style1  STYLE_SOLID
#property indicator_width1  2
//--- input parameters
input uint                 InpPeriod         =  14;            // Period
input ENUM_APPLIED_PRICE   InpAppliedPrice   =  PRICE_CLOSE;   // MA Applied price
input ENUM_MA_METHOD       InpMethod         =  MODE_EMA;      // MA method
input ENUM_APPLIED_PRICE   InpByPrice        =  PRICE_CLOSE;   // Distance from:
//--- indicator buffers
double         BufferMASC[];
double         BufferColors[];
double         BufferMA[];
double         BufferMA1[];
double         BufferATR[];
//--- global variables
int            period;
int            handle_ma;
int            handle_ma1;
int            handle_atr;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- set global variables
   period=int(InpPeriod<1 ? 1 : InpPeriod);
//--- indicator buffers mapping
   SetIndexBuffer(0,BufferMASC,INDICATOR_DATA);
   SetIndexBuffer(1,BufferColors,INDICATOR_COLOR_INDEX);
   SetIndexBuffer(2,BufferATR,INDICATOR_CALCULATIONS);
   SetIndexBuffer(3,BufferMA1,INDICATOR_CALCULATIONS);
   SetIndexBuffer(4,BufferMA,INDICATOR_CALCULATIONS);
//--- setting indicator parameters
   IndicatorSetString(INDICATOR_SHORTNAME,"Scale of moving average ("+(string)period+")");
   IndicatorSetInteger(INDICATOR_DIGITS,Digits());
//--- setting buffer arrays as timeseries
   ArraySetAsSeries(BufferMASC,true);
   ArraySetAsSeries(BufferColors,true);
   ArraySetAsSeries(BufferATR,true);
   ArraySetAsSeries(BufferMA1,true);
   ArraySetAsSeries(BufferMA,true);
//--- create MA's handles
   ResetLastError();
   handle_ma1=iMA(NULL,PERIOD_CURRENT,1,0,MODE_SMA,InpByPrice);
   if(handle_ma1==INVALID_HANDLE)
     {
      Print("The iMA(1) by ",EnumToString(InpByPrice)," object was not created: Error ",GetLastError());
      return INIT_FAILED;
     }
   handle_ma=iMA(NULL,PERIOD_CURRENT,period,0,InpMethod,InpAppliedPrice);
   if(handle_ma==INVALID_HANDLE)
     {
      Print("The iMA(",(string)period,") object was not created: Error ",GetLastError());
      return INIT_FAILED;
     }
   handle_atr=iATR(NULL,PERIOD_CURRENT,period);
   if(handle_atr==INVALID_HANDLE)
     {
      Print("The iATR(",(string)period,") object was not created: Error ",GetLastError());
      return INIT_FAILED;
     }
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//--- Проверка и расчёт количества просчитываемых баров
   if(rates_total<fmax(period,4)) return 0;
//--- Проверка и расчёт количества просчитываемых баров
   int limit=rates_total-prev_calculated;
   if(limit>1)
     {
      limit=rates_total-2;
      ArrayInitialize(BufferMASC,EMPTY_VALUE);
      ArrayInitialize(BufferATR,0);
      ArrayInitialize(BufferMA,0);
     }
//--- Подготовка данных
   int count=(limit>1 ? rates_total : 1),copied=0;
   copied=CopyBuffer(handle_ma,0,0,count,BufferMA);
   if(copied!=count) return 0;
   copied=CopyBuffer(handle_ma1,0,0,count,BufferMA1);
   if(copied!=count) return 0;
   copied=CopyBuffer(handle_atr,0,0,count,BufferATR);
   if(copied!=count) return 0;

//--- Расчёт индикатора
   for(int i=limit; i>=0 && !IsStopped(); i--)
     {
      BufferMASC[i]=(BufferATR[i]!=0 ? (BufferMA1[i]-BufferMA[i])/BufferATR[i] : 0);
      BufferColors[i]=(BufferMASC[i]>BufferMASC[i+1] ? 0 : BufferMASC[i]<BufferMASC[i+1] ? 1 : 2);
     }

//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
 

ale9551

Активный участник
Уважаемые программисты!
Напишите пожалуйста простой безиндикаторный советник.
Суть в следующем:
1)На открытии нового бара советник должен открывать 2-е разнонаправленные позиции,одну в БАЙ,другую в СЕЛЛ.
2)Но обоих позициях устанавливается фиксированный стоп-лосс.
3)С тейк профитом немного сложнее,в частности,советник при начале торговли запоминает стартовый эквити(средства,например 10$)и прибавляет к 10$ заданный трейдером прибавочный профит по эквити(например 0.1),тогда все сделки закрываются когда баланс будет равен либо 10,10$,либо обе сделки закроются по стоп лоссу(например сл=10 на пятизнаке,будет означать что обе сделки закрывшись по стоп лоссу будет=9.8$)
4)В случае,если обе сделки закроются по стоп лоссу,тогда на открытии новой свечи,должны открыться 2-е новые сделки с параметром addLot(например addLot=1,то при лоте 0.01 сл. сделки будут 0.02,если опять обе сделки стоп лосс,то 0.03,сл. 0.04,и.т.д
5)В случае если одна сделка закроется по стоп лоссу,а следующая достигнет суммарного эквити 10.10$,то обе сделки откроются на сл.свече первоначальным лотом(0.01),потом советник автоматически ставит сл.цель суммарного заданного эквити 10.2,затем в случае успеха 10.3,затем 10,4 и.т.д
6)Если советник достигнул максимально возможных лотов(маржин колл),то обе сделки открываются максимально возможным лотом(как в советнике неваляшка)
7)Желательно добавить в советник параметры:
а)время работы советника
б)магик номер
в)максимально допустимый спред(в пипсах)
г)максимально допустимое проскальзывание(в пипсах)
В выложенном советнике идеально сделан параметр максимальный возможный лот при конкретном депозите(если не хватает депо,то ставится максимальный лот при стоп лоссе при имеющемся депо.

Заранее благодарен!
 

Вложения

Отслеживают (172) Посмотреть

Верх