Любые вопросы новичков по MQL4 и MQL5, помощь и обсуждение по алгоритмам и кодам - страница 1823

 
Tretyakov Rostyslav #:

a1)

а2)

б)

а по остальным пунктам?

 
Порт-моне тв #:

а по остальным пунктам?

Будем решать вопросы по мере их поступления...

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

 
Mihail Matkovskij #:

Функция Color должна возвращать color а не double.

Ссылку ту что добавил движок сайта тоже было бы не лишним изучить.

спасибо. сейчас почитаю

 
Tretyakov Rostyslav #:

Будем решать вопросы по мере их поступления...

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

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

 
Порт-моне тв #:

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

Зачем в файл, можно так


Тоже не сложно, в момент начала подсчета запоминаешь

int iStart  = 0;
int iSeconds=20;
//---
   if(наступило событие)
      iStart=TimeCurrent(); // запомнили время в секундах
//---
   if((iStart+iSeconds)<=TimeCurrent()) // если время пришло
     {
      выполняем действие
     }


 
Tretyakov Rostyslav #:

Будем решать вопросы по мере их поступления...

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

int ticket;
double pricefix;
// if an object was clicked
   if(id==CHARTEVENT_OBJECT_CLICK)
     {
      // if buy button was pressed
      if(sparam=="BuyButton")
        {
         //price fixing
         pricefix = Ask; 
        
        }
     }  
    if(Ask < pricefix - 4*_Point)
    { 
   ticket = OrderSend(_Symbol,OP_BUY,0.01,Ask,3,0,Ask+300*_Point,NULL,0,0,Green);  
    }  
}

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

хотя функция в теории правильная, если ставлю 

if(Ask == pricefix)
то ордер немедленно открывается, но мне надо чтобы на 4 пункта ниже после запоминания 
 
Порт-моне тв #:

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

хотя функция в теории правильная, если ставлю 

то ордер немедленно открывается, но мне надо чтобы на 4 пункта ниже после запоминания 




//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- 
   ObjectCreate(0,"Button_1",OBJ_BUTTON,0,0,0);
   ObjectSetInteger(0,"Button_1",OBJPROP_XDISTANCE,20);
   ObjectSetInteger(0,"Button_1",OBJPROP_YDISTANCE,20);
   ObjectSetInteger(0,"Button_1",OBJPROP_XSIZE,100);
   ObjectSetInteger(0,"Button_1",OBJPROP_YSIZE,20);
   ObjectCreate(0,"Label_1",OBJ_LABEL,0,0,0);
   ObjectSetInteger(0,"Label_1",OBJPROP_XDISTANCE,20);
   ObjectSetInteger(0,"Label_1",OBJPROP_YDISTANCE,40);
   ObjectSetInteger(0,"Label_1",OBJPROP_CORNER,CORNER_LEFT_UPPER);
   ObjectSetString(0,"Label_1",OBJPROP_TEXT,"Price");
   ObjectSetInteger(0,"Label_1",OBJPROP_COLOR,clrBlack);
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| ChartEvent function                                              |
//+------------------------------------------------------------------+
void OnChartEvent(const int id,
                  const long &lparam,
                  const double &dparam,
                  const string &sparam)
  {
//---
   if(sparam=="Button_1")
     {
      ObjectSetString(0,"Label_1",OBJPROP_TEXT,DoubleToString(Ask-4*_Point,Digits));
     }
   
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//---
   int ticket;
   double price=StringToDouble(ObjectGetString(0,"Label_1",OBJPROP_TEXT));
   if(Ask<=price) ticket = OrderSend(_Symbol,OP_BUY,0.01,Ask,3,0,Ask+300*_Point,NULL,0,0,clrGreen);  
  }
 

Привет!

Имеется вопрос.

Можно как либо запомнить максимальную просадку?

То есть сегодня просадка 16% а 20 дней назад была 5%, значит максимальная просадка 16%, а если завтра будет 24% значит максимальная 24%

Или это сложно у ну его.

 
Alexander Avksentyev #:

Привет!

Имеется вопрос.

Можно как либо запомнить максимальную просадку?

То есть сегодня просадка 16% а 20 дней назад была 5%, значит максимальная просадка 16%, а если завтра будет 24% значит максимальная 24%

Или это сложно у ну его.

в CodeBase есть индикаторы выводящие историю Balance, Equty от торговой истории .. Причём их более одного, таких тулзов.

берите данные и считайте как от обычного индикатора

 
Maxim Kuznetsov #:

в CodeBase есть индикаторы выводящие историю Balance, Equty от торговой истории .. Причём их более одного, таких тулзов.

берите данные и считайте как от обычного индикатора

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

Спасибо!!!

Причина обращения: