Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда - 6. - страница 71

 

Необходимо, чтобы индикатор рисовал стрелки на дневном графике. Предполагаю, что проблема в использовании значений 15 минутных ЕМА, на 15 минутных все работает. Возможно ли сделать так, чтобы индикатор расчитывался из 15 минутного таймфрейма, а стрелки рисовал и на дневном графике?

Ниже сам код:

#property copyright ""
#property link      ""

#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Magenta
#property indicator_color2 Red

//--- input parameters

//--- buffers
double ExtMapBuffer1[];
double ExtMapBuffer2[];

//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
//---- indicators
   SetIndexStyle(0,DRAW_ARROW);
   SetIndexArrow(0,217);
   SetIndexBuffer(0,ExtMapBuffer1);
   SetIndexEmptyValue(0,0.0);
   SetIndexStyle(1,DRAW_ARROW);
   SetIndexArrow(1,217);
   SetIndexBuffer(1,ExtMapBuffer2);
   SetIndexEmptyValue(1,0.0);
   IndicatorDigits(Digits+1);
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function                       |
//+------------------------------------------------------------------+
int deinit()
  {
//----
   
//----
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
    int counted_bars=IndicatorCounted(),                      
    limit;
    double
    signal_1,
    signal_2,
    MA_1_t,                                                 
    MA_2_t;
 
   if(counted_bars>0)
      counted_bars--;
   
   limit=Bars-counted_bars;
   
   
   for(int i=0;i<limit;i++)
   {
      MA_1_t=iMA(NULL,PERIOD_M15,3,0,MODE_EMA,PRICE_CLOSE,i+0);  
      MA_2_t=iMA(NULL,PERIOD_M15,3,0,MODE_EMA,PRICE_CLOSE,i+1);  
      signal_1 = (условие);
      signal_2 = (условие);
      if (signal_1 >= определенное число)
      ExtMapBuffer1[i]=High[i]+5*Point;
      else
         ExtMapBuffer1[i]=0.0;
      if(signal_2 >= определенное число)
         ExtMapBuffer2[i]=Low[i]-5*Point;         
      else
         ExtMapBuffer2[i]=0.0; 
   }
   return(0);
  }
//+------------------------------------------------------------------+
 
satorifx:


dist = MathAbs((NormalizeDouble(Bid,Digits)-
NormalizeDouble(ObjectGetValueByShift(TrendLineName,0),Digits))*MathPow(10,Digits));

Код находит расстояние от текущего уровня цены до трендовой по имени TrendLineName. Но есть проблема: видимо трендовая неточно передается между таймами, а потому на разных таймах расстояние до цены получается совсем разное. Как обойти эту проблему? В идеале, если даже трендовая отображается только на Н1, при открытом тайме W1 (фактически при любом открытом тайме) расчетное расстояние должно быть одинаковым.


Всвязи с вопросом в цитате выше, другой вопрос: как сэмулировать тайм, отличный от открытого на графике? Т.е., например, при открытом Д1 вести расчет по М30?
 
перерыл интернет, кое - что нашел, но сколько не пробывал не получается и все!!! помогите дописать трейлинг стоп)) работать должен так - если цена поднимается/опускается (в прибыль) на "Х" пунктов срабатывает трейлинг стоп на "У" пунктов от этой цены и движется по профиту с шагом "Z" . Огромное спасибо тому кто поможет))))))

//+------------------------------------------------------------------+
//| sobstvennyi_probnyi_sovetnic.mq4 |
//| Antonico |
//| http://www.metaquotes.net |
//+------------------------------------------------------------------+
#property copyright "Antonico"
#property link "http://www.metaquotes.net"

//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
double lot=1;
extern double sl=30;
extern double tp=30;
extern double koeff=2;
int pon=1;
int vtor=0;
int sred=3;
int hetver=0;
int patn=0;


int init()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()

{ int otkrord=OrdersTotal();
if (DayOfWeek()==pon || DayOfWeek()==vtor || DayOfWeek()==sred || DayOfWeek()==hetver || DayOfWeek()==patn || DayOfWeek()==6 || DayOfWeek()==0 || otkrord >0) return(0);



if(OrdersHistoryTotal()==0)
{lot=1;}

if (OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY))

{
if (OrderProfit()>0)
{
lot=1;
}
if (OrderProfit()<=0)
{
lot=OrderLots()*koeff; // Умножить на 2
}

}


int h=TimeHour(TimeCurrent());
int m=TimeMinute(TimeCurrent());
int s=TimeSeconds(TimeCurrent());
double zena0= Open[3];
double zena01=Open[2];


if (h==1 && m==00 && s==01 && zena0<zena01 )

{OrderSend(Symbol(), OP_BUY,lot,Ask,3,Bid-sl*Point,Ask+tp*Point,"",0,0,Green);}





if (h==1 && m==00 && s==01 && zena0>zena01)
{OrderSend(Symbol(), OP_SELL,lot,Bid,3,Ask+sl*Point,Bid-tp*Point,"",0,0,Red);
}


{if(OrdersHistoryTotal()==0)
{lot=1;}

if (OrderSelect(OrdersHistoryTotal()-1,SELECT_BY_POS,MODE_HISTORY))

{
if (OrderProfit()>0)
{
lot=1;
}
if (OrderProfit()<=0)
{
lot=OrderLots()*koeff; // Умножить на 2 после убыточной сделки
}

}




double zena1= Open[5];
double zena11=Open[4];

if (h==3 && m==00 && s==01 && zena1>zena11)
{



OrderSend(Symbol(), OP_BUY,lot,Ask,3,Bid-sl*Point,Ask+tp*Point,"",0,0,Green);}
if (h==14 && m==00 && s==01 && zena1<zena11)
{OrderSend(Symbol(), OP_SELL,lot,Bid,3,Ask+sl*Point,Bid-tp*Point,"",0,0,Red);

}
}

return(0);
}

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

Подскажите, пожалуйста, как можно символ (string) перевести в ASCII-код?

Грубо говоря, нужна функция, обратная CharToStr().

 
Heroix:

Подскажите, пожалуйста, как можно символ (string) перевести в ASCII-код?

Грубо говоря, нужна функция, обратная CharToStr().


 

добрый день.

помогите мне нужен код

график текущий график

при открытии нового бара должен быть открыт ордер

именно новый бар

 
sannin:

добрый день.

помогите мне нужен код

график текущий график

при открытии нового бара должен быть открыт ордер

именно новый бар

Не вопрос!

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

 

Привет всем.

Такой вопрос у меня возник. В тестере неделя, есле смотреть напремер по часовому графику, наченаетса в 00:00. Известно, что форекс неделя наченаетса в 20:15 GMT. То есть чтобы в из часа в тестере получить час GMT, грубо говоря, пребовляем 20 часов и делим по модулю на 24, так?

 
почему именно в 20:15, для вас она откроется так как откроет ваш брокер
 
Всем доброго дня. Подскажите где взять инфо. на тему как закрыть советника от лишних глаз и что нужно чтоб советник работал определённое время и в дальнейшем перестаёт быть полезным до момента, ну например введения кода для продолжения работы, как то так. Заранее спасибо!!!