Если Вы хотите заказать советник или индикатор, то публикуйте в эту группу тех. задание. Если Ваш заказ не очень сложный, то велика вероятность, что Вам его смогут сделать даже бесплатно
Программистам MQL: подпишитесь на группу, чтобы получать уведомления о заказах.
//--- входные параметры
//--- входные параметры
input int count = 50; //количество линий вверх вниз от цены
input int step = 333; //шаг линий
input double pr = 1.4622; //цена от которой пляшем
<code>
//+------------------------------------------------------------------+
//| GridBuilder.mq5 |
//| Copyright 2015, AM2 |
//| https://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2015, AM2"
#property link "https://www.forexsystems.biz"
#property version "1.00"
#property indicator_chart_window
//---- для расчёта и отрисовки индикатора использовано ноль буферов
#property indicator_buffers 0
//---- использовано всего ноль графических построений
#property indicator_plots 0
//--- входные параметры
input int count = 50; //количество линий вверх вниз от цены
input int step = 333; //шаг линий
input double pr = 1.4622; //цена от которой пляшем
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//--- indicator buffers mapping
ObjectsDeleteAll(0,0,OBJ_HLINE);
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Expert deinitialization function |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
Comment("");
ObjectsDeleteAll(0,0,OBJ_HLINE);
}
//+------------------------------------------------------------------+
//| Создает горизонтальную линию |
//+------------------------------------------------------------------+
bool HLine(const string name="HLine",double price=0)
{
//--- создадим горизонтальную линию
if(!ObjectCreate(0,name,OBJ_HLINE,0,0,price))
{
Print(__FUNCTION__,
": не удалось создать горизонтальную линию! Код ошибки = ",GetLastError());
return(false);
}
//--- установим цвет линии
ObjectSetInteger(0,name,OBJPROP_COLOR,clrGreen);
ObjectSetInteger(0,name,OBJPROP_WIDTH,1);
return(true);
}
//+------------------------------------------------------------------+
//| 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[])
{
double price=pr;
//--- создадим горизонтальную линию
for(int i=0;i<=count;i++)
{
HLine("HLine"+(string)i,price+step*i*_Point);
HLine("HLine"+(string)(i+count+1),price-step*i*_Point);
}
//--- return value of prev_calculated for next call
return(rates_total);
}
//+------------------------------------------------------------------+
</code>
Комментарии (3)
35 AM2 Сообщений: 16672 - Андрей
www.opentraders.ru/downloads/1002/
<code> //+------------------------------------------------------------------+ //| GridBuilder.mq5 | //| Copyright 2015, AM2 | //| https://www.forexsystems.biz | //+------------------------------------------------------------------+ #property copyright "Copyright 2015, AM2" #property link "https://www.forexsystems.biz" #property version "1.00" #property indicator_chart_window //---- для расчёта и отрисовки индикатора использовано ноль буферов #property indicator_buffers 0 //---- использовано всего ноль графических построений #property indicator_plots 0 //--- входные параметры input int count = 50; //количество линий вверх вниз от цены input int step = 333; //шаг линий input double pr = 1.4622; //цена от которой пляшем //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int OnInit() { //--- indicator buffers mapping ObjectsDeleteAll(0,0,OBJ_HLINE); //--- return(INIT_SUCCEEDED); } //+------------------------------------------------------------------+ //| Expert deinitialization function | //+------------------------------------------------------------------+ void OnDeinit(const int reason) { Comment(""); ObjectsDeleteAll(0,0,OBJ_HLINE); } //+------------------------------------------------------------------+ //| Создает горизонтальную линию | //+------------------------------------------------------------------+ bool HLine(const string name="HLine",double price=0) { //--- создадим горизонтальную линию if(!ObjectCreate(0,name,OBJ_HLINE,0,0,price)) { Print(__FUNCTION__, ": не удалось создать горизонтальную линию! Код ошибки = ",GetLastError()); return(false); } //--- установим цвет линии ObjectSetInteger(0,name,OBJPROP_COLOR,clrGreen); ObjectSetInteger(0,name,OBJPROP_WIDTH,1); return(true); } //+------------------------------------------------------------------+ //| 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[]) { double price=pr; //--- создадим горизонтальную линию for(int i=0;i<=count;i++) { HLine("HLine"+(string)i,price+step*i*_Point); HLine("HLine"+(string)(i+count+1),price-step*i*_Point); } //--- return value of prev_calculated for next call return(rates_total); } //+------------------------------------------------------------------+ </code>Редактирован: 9 января 2016, 00:2635 AM2 Сообщений: 16672 - Андрей
10 sober Автор Сообщений: 38
Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий