Обучение языку MQL4 под MetaTrader 4📌

От xbms, 13 апреля, 2013 в Уголок Программиста

#6651

Someone able to edit language of exe from Chinese to English?

Got some software to Change marquet environment local no VPS.

Shall I upload?

#6652

Доброе всем время суток! Кто нибудь может подсказать как выставлять отложенные ордера BUY STOP и  SELL STOP на расстояние в пунктах от существующей цены в MQL4?

#6653
7 минут назад, Hanuman сказал:

Доброе всем время суток! Кто нибудь может подсказать как выставлять отложенные ордера BUY STOP и  SELL STOP на расстояние в пунктах от существующей цены в MQL4?

С помощью скрипта.

OpenStopOrderNet.rar7 скач.

#6654

hvn000? Cпасибо, но этот архив не распаковывается, выходит сообщение, что повреждён.

#6655
40 минут назад, Hanuman сказал:

Cпасибо, но этот архив не распаковывается, выходит сообщение, что повреждён.

Архиватор скачайте новый.

OpenStopOrderNet.mq48 скач.

#6656
1 час назад, Hanuman сказал:

Доброе всем время суток! Кто нибудь может подсказать как выставлять отложенные ордера BUY STOP и  SELL STOP на расстояние в пунктах от существующей цены в MQL4?

https://www.davinci-fx.com/mql_pendings/

Посмотри здесь

#6657

привет!

я только вторую неделю изучаю MQL,

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

 

задаю исходный риск в %, лотность считается взависимоти от величины стопа (это уже работает, прада порядок я до сих пор руками подкручиваю для инструмента))))

 

затем если получили стоп - то увеличиваем обьем риска

новый риск:

Risk=((убыток/размер текущего счета-убыток)/соотношение риск:прибыль) +изначальный риск

 

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

Спасибо за помощь! код ниже

--------------------------------

double Lots()
   {
   double r;
   
   double result=Result();
   
   double Risk;
   if(result>=0)
   {  Risk=RiskStart;}
   else
   {Risk=NormalizeDouble((((result/(AccountBalance()+MathAbs(result)))/multiplier)+RiskStart),2);
   Print(Risk);}
   if(Digits>2)
   {
      double p=SymbolInfoDouble(Symbol(),SYMBOL_TRADE_CONTRACT_SIZE)*Bid*0.01;
      double k=MathAbs(Bid-SL)*p*(10^Digits);
      double m=Risk*AccountBalance()/100;
      double f=m/k;
      r=NormalizeDouble(f,2);
     
    }
    else{
    double p=SymbolInfoDouble(Symbol(),SYMBOL_TRADE_TICK_VALUE);
      double k=MathAbs(Bid-SL)*p;
      double m=Risk*AccountBalance()/10000;
      double f=m/k;
      r=NormalizeDouble(f,2);
    }
   
       if(r<0.01)
       r=0.01;
        return(r);
   }
   
 double Result()//-------------выясняю какой общий убыток наторговали
 {
    double s=0;
    if (OrdersHistoryTotal()>0)
   {
   int j=OrderSelect(0,SELECT_BY_POS, MODE_HISTORY);
   if(j<0)
   Print("error to got order");
   double loss=OrderProfit(); 
   if(loss<0)
   {
   for (int u=1; loss<=0 && u<=OrdersHistoryTotal(); u++)
   {
      int k=OrderSelect(u,SELECT_BY_POS, MODE_HISTORY);
      if(OrderProfit()<0)
      {
         loss=OrderProfit();
         s=s+loss;
       }
   }
   }
   else{s=loss;}
   }
   return(s);
 }

 

#6658

Кто ни будь может помочь восстановить индикатор Juice (что бы он отображался в МТ4):

 

//+------------------------------------------------------------------+
//| Juice.mq4 |
//| Perky_z |
//+------------------------------------------------------------------+
#property copyright "perky"
#property link ""
//---- indicator settings
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 LimeGreen
#property indicator_color2 FireBrick
//---- indicator parameters
extern int Periyod=7;
extern double Level=0.0004;

//---- indicator buffers
double OsMAUpBuffer[];
double OsMADownBuffer[];
double OsMABuffer[];
double MACDBuffer[];
double SignalBuffer[];


//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- 2 additional buffers are used for counting.
IndicatorBuffers(5);
//---- drawing settings
SetIndexStyle(0,DRAW_HISTOGRAM,STYLE_SOLID,2);
SetIndexStyle(1,DRAW_HISTOGRAM,STYLE_SOLID,1);
SetIndexDrawBegin(0,Level);
IndicatorDigits(MarketInfo(Symbol(),MODE_DIGITS)+2);
//---- 3 indicator buffers mapping
if(!SetIndexBuffer(0,OsMAUpBuffer) &&
!SetIndexBuffer(1,OsMADownBuffer) &&
!SetIndexBuffer(2,OsMABuffer) &&
!SetIndexBuffer(3,MACDBuffer) &&
!SetIndexBuffer(4,SignalBuffer))
Print("cannot set indicator buffers!");
//---- name for DataWindow and indicator subwindow label
IndicatorShortName("Juice("+Periyod+","+Level+")");
//---- initialization done
return(0);
}
//+------------------------------------------------------------------+
//| Moving Average of Oscillator |
//+------------------------------------------------------------------+
int start()
{
//if ( Period != 15) Alert ("Juice Is Recommended for 15 Min Chart only!!");


if (Symbol()=="USDJPY") Level=0.040;
if (Symbol()=="EURJPY") Level=0.040;
if (Symbol()=="GBPJPY") Level=0.040;
int limit,i;
int counted_bars=IndicatorCounted();
//---- check for possible errors
if(counted_bars<0) return(-1);
//---- last counted bar will be recounted
if(counted_bars>0) counted_bars--;
limit=Bars-counted_bars;
if (Level== 0.0004 && Period()==5 ) Level=0.0002;


//---- main loop
for(i=0; i<limit; i++){
OsMABuffer=iStdDev (NULL,0,Periyod,MODE_EMA,0,PRICE_CLOSE,i)-(Level);

if(OsMABuffer>0){
OsMAUpBuffer=OsMABuffer;
OsMADownBuffer=0;
}else if(OsMABuffer<0){
OsMADownBuffer=OsMABuffer;
OsMAUpBuffer=0;
}else{
OsMAUpBuffer=0;
OsMADownBuffer=0;
}
}
//---- done
return(0);
}
//+------------------------------------------------------------------+

Juice.gif

#6659

Здравствуйте!

Не могу сообразить функцию подсчета количества черных и белых свечей на таймфрейме H1 не за определенный период, а за закрытый предыдущий день. Т.е. например сегодня 27.07, а необходимо узнать сколько вчера 26.07 за сутки на Н1 было черных и белых свечей. Если кто может, прошу подсказать. Спасибо!

#6660
4 часа назад, Владимир Стариков сказал:

Здравствуйте!

Не могу сообразить функцию подсчета количества черных и белых свечей на таймфрейме H1 не за определенный период, а за закрытый предыдущий день. Т.е. например сегодня 27.07, а необходимо узнать сколько вчера 26.07 за сутки на Н1 было черных и белых свечей. Если кто может, прошу подсказать. Спасибо!

Пробегаете в цикле от 0-й свечи до i-той.
Если смотрите гарантированно за вчерашний день, то с запасом берете 24*2=48 итераций.
На каждой итерации проверяете дату свечи. Если удовлетворяет условию, то проверяете ее направление.

Решение "кривое" в смысле того, что будет работать только "предыдущий день".
Если продумать все возможные сценарии использования, то алгоритм можно усложнить.

#6661
6 часов назад, Владимир Стариков сказал:

Здравствуйте!

Не могу сообразить функцию подсчета количества черных и белых свечей на таймфрейме H1 не за определенный период, а за закрытый предыдущий день. Т.е. например сегодня 27.07, а необходимо узнать сколько вчера 26.07 за сутки на Н1 было черных и белых свечей. Если кто может, прошу подсказать. Спасибо!

Вот простой скрипт для выполнения данной функции.
Узнается предыдущий день, фильтруются выходные. Далее запускается цикл на последние 100 свечей и идет сравнение дня каждой из свеч с рассчитанным ранее, если день совпадает, то:
а) если цена открытия выше цены закрытия - свеча медвежья
б) если цена открытия ниже цены закрытия - свеча бычья. 
Все записывается в память и выдается в журнал принтом. 

Candles counter.mq49 скач.

#6662

Кто-нибудь скиньте плиз толковую книгу по программироанию мкьл4 этак на  пару сотен страниц, из первого поста ни черта не скачивается.

Изменено 25 августа, 2022 пользователем immortal

#6663
11 минут назад, immortal сказал:

Кто-нибудь скиньте плиз толковую книгу по программироанию мкьл4 этак на  пару сотен страниц, из первого поста ни черта не скачивается.

Попробуй этот курс: https://www.davinci-fx.com/mql-coding/
Преимущество в том, что код можно сразу копировать с сайта в MetaEditor 

#6664

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

в коде советника как это сделать, что бы советник работал до 30.08.2022

 

 

#6665
В 26.08.2022 в 20:53, serga-bl сказал:

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

в коде советника как это сделать, что бы советник работал до 30.08.2022

 

 

А вам зачем, если не секрет?

#6666

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

#4X Bheurekso Pattern 4_arrow.mq45 скач.

Изменено 6 сентября, 2022 пользователем 967030@mail.ru

#6667

Здравствуйте подскажите код для того чтобы советник торговал например с 9 до 19 

#6668
В 29.08.2022 в 22:41, Rigal сказал:

А вам зачем, если не секрет?

надо... помогите, пожалуйста

как ограничить работу советника до определенной даты, как это прописать в коде ?

Изменено 13 сентября, 2022 пользователем serga-bl

#6669
2 часа назад, serga-bl сказал:

надо... помогите, пожалуйста

как ограничить работу советника до определенной даты, как это прописать в коде ?

Если с вашей точки зрения "надо" - исчерпывающий ответ на мой вопрос, то "очень просто" - мой ответ на ваш

#6670
12 часов назад, Rigal сказал:

Если с вашей точки зрения "надо" - исчерпывающий ответ на мой вопрос, то "очень просто" - мой ответ на ваш

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

помогите, пожалуйста

#6671
В 10.09.2022 в 07:12, Roman 13 сказал:

Здравствуйте подскажите код для того чтобы советник торговал например с 9 до 19 

Чуть выше есть ссылка на сайт davinci. Там есть всё в обучении, что нужно уверенному середнячку в программировании, в т.ч. и ответ на Ваш вопрос.

#6672

 

https://www.davinci-fx.com/mql-ea-stochastic/
Описание пользовательской функции IsTime читайте

В 10.09.2022 в 14:12, Roman 13 сказал:

Здравствуйте подскажите код для того чтобы советник торговал например с 9 до 19 

Изменено 15 сентября, 2022 пользователем Rever27

#6673
1 час назад, Rever27 сказал:

 

https://www.davinci-fx.com/mql-ea-stochastic/
Описание пользовательской функции IsTime читайте

Да это понятно, что там написано. Непонятно , почему установил торговать с 9 до 19 часов, запустил советник в 22, а он торговать начал, т.е. мимо установленного времени

#6674
В 14.09.2022 в 09:27, serga-bl сказал:

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

помогите, пожалуйста

Собственно, как и ожидалось.

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

Не говоря уже о том, что вы планируете зарабатывать на продаже чего-то, что вам явно не принадлежит.

 

#6675

Здравствуйте! По уроку Павла по трейлинг стропу прикрутил его трейлинг к индиктатру true TMA, и сделал сигнал на вход при пересечении ценой сверху вниз нижней линии по тренду на продажу, на покупку соответственно - наоборот. 

 

 if (iOpen(NULL,0,0) > iClose(NULL,0,0) && iOpen(NULL,0,0) > PriceLow && iClose(NULL,0,0) < PriceLow && PriceLow < PriceLowPrev && CountBuy() == 0 && CountSell() == 0)

 

PriceLowPrev это линия TMA на шаг назад для определения тренда по свече. 


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

244.png

Изменено 29 сентября, 2022 пользователем megakosmo

Для публикации сообщений создайте учётную запись или авторизуйтесь

Перейти к списку тем
Форум · 2.0.20260627.0025