Ребята подскажите пожалуйста. На этом сайте есть скрипт "SendOrderMultiLock". Меня интересует можно ли его сделать так чтобы он включался в заданное время?
Раз уж вы проявили инициативу, то давайте попробуем придумать код, который бы сигналил нам каждую минуту с информацией о цене открытия минутной свечи на пятиминутном графике (с возможностью работы в тестере). Предлагаю свой вариант:
// функция записывает в массив result[] цены открытия минутных баров // внутри бара с индексом shift текущего таймфрейма. Возвращаемое значение - количество соответствующих минутных баров// int M1_OpenPrices(int shift, double &result[])
{
int n=0;
ArrayResize(result,n);
int sh, sh1 = iBarShift(0, PERIOD_M1, Time[shift]);
for(sh=sh1;sh>=0;sh--)
{
if(iBarShift(0, 0, iTime(0,PERIOD_M1,sh))!=shift) break;
n++;
ArrayResize(result,n);
result[n-1] = iOpen(Symbol(),PERIOD_M1,sh1);
}
return(n);
}
Кто знает, как сделать, чтобы цвет линий тейк-профита отличался на графике от цвета стоп-лоса автоматически? и как сделать, чтобы на графике появлялся значок в том месте, где выставлен ордер?
Уважаемые!Помогите разобраться.Строю MACD по предыдущему бару(i+1).Нахожу max и min среди видимых в окне индикатора значений графика MACD.Вывожу в Comment max,min и текущие значения основной и сигнальной линий.Max и min в Comment на графике отражаются верно,а текущие значения линий-НЕТ!Где промашка?И почему в Comment числа не пятизначные,ведь прописано " IndicatorDigits(Digits+1);"? Может кто-нибудь поможет разобраться.
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Lime
#property indicator_color2 Red
#property indicator_width1 2
//--- buffers
double Macd1Buffer[];
double Signal1Buffer[];
//--- for one bar
datetime last;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,Macd1Buffer);
SetIndexStyle(1,DRAW_LINE);
SetIndexBuffer(1,Signal1Buffer);
IndicatorDigits(Digits+1);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----
Comment("");
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start()
{
if(last>=Time[0]) return;
double max_M1=-0.01,min_M1=0.01,
max_S1=-0.01,min_S1=0.01,
max1=-0.01,min1=0.01;
int bars_counted=WindowBarsPerChart()-1,
limit;
limit=bars_counted;
//---- macd counted in the 1-st buffer
for( int i=0; i<limit; i++)
{
Macd1Buffer[i]=iMA(NULL,0,6,0,MODE_EMA,PRICE_CLOSE,i+1)-iMA(NULL,0,12,0,MODE_EMA,PRICE_CLOSE,i+1);
max_M1=MathMax(Macd1Buffer[i],max_M1);
min_M1=MathMin(Macd1Buffer[i],min_M1);
}
//---- macd counted in the 2-nd buffer
for( i=0; i<limit; i++)
{
Signal1Buffer[i]=iMAOnArray(Macd1Buffer,Bars,5,0,MODE_SMA,i);
max_S1=MathMax(Signal1Buffer[i],max_S1);
min_S1=MathMin(Signal1Buffer[i],min_S1);
}
max1=MathMax(max_M1,max_S1);
min1=MathMin(min_M1,min_S1);
Comment( "\n"," Баров = ",WindowBarsPerChart()-1,
"\n"," max1 = ",max1,
"\n"," min1 = ",min1,
"\n"," Macd1Buffer = ",Macd1Buffer[i],
"\n"," Signal1Buffer = ",Signal1Buffer[i]);
last=Time[0];
//----
return(0);
}
//+------------------------------------------------------------------+
Уважаемые!Помогите разобраться.Строю MACD по предыдущему бару(i+1).Нахожу max и min среди видимых в окне индикатора значений графика MACD.Вывожу в Comment max,min и текущие значения основной и сигнальной линий.Max и min в Comment на графике отражаются верно,а текущие значения линий-НЕТ!Где промашка?И почему в Comment числа не пятизначные,ведь прописано " IndicatorDigits(Digits+1);"? Может кто-нибудь поможет разобраться.
Данные типа double выводятся с 4 десятичными цифрами после точки. Для вывода чисел с большей точностью необходимо использовать функцию DoubleToStr().
Задавайте вопрос правильно.
Даст вам ответ
Раз уж вы проявили инициативу, то давайте попробуем придумать код, который бы сигналил нам каждую минуту с информацией о цене открытия минутной свечи на пятиминутном графике (с возможностью работы в тестере). Предлагаю свой вариант:
Этот вариант лучше.
и на том спасибо
Уважаемые!Помогите разобраться.Строю MACD по предыдущему бару(i+1).Нахожу max и min среди видимых в окне индикатора значений графика MACD.Вывожу в Comment max,min и текущие значения основной и сигнальной линий.Max и min в Comment на графике отражаются верно,а текущие значения линий-НЕТ!Где промашка?И почему в Comment числа не пятизначные,ведь прописано " IndicatorDigits(Digits+1);"? Может кто-нибудь поможет разобраться.
#property indicator_separate_window #property indicator_buffers 2 #property indicator_color1 Lime #property indicator_color2 Red #property indicator_width1 2 //--- buffers double Macd1Buffer[]; double Signal1Buffer[]; //--- for one bar datetime last; //+------------------------------------------------------------------+ //| Custom indicator initialization function | //+------------------------------------------------------------------+ int init() { //---- indicators SetIndexStyle(0,DRAW_LINE); SetIndexBuffer(0,Macd1Buffer); SetIndexStyle(1,DRAW_LINE); SetIndexBuffer(1,Signal1Buffer); IndicatorDigits(Digits+1); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- Comment(""); //---- return(0); } //+------------------------------------------------------------------+ //| Custom indicator iteration function | //+------------------------------------------------------------------+ int start() { if(last>=Time[0]) return; double max_M1=-0.01,min_M1=0.01, max_S1=-0.01,min_S1=0.01, max1=-0.01,min1=0.01; int bars_counted=WindowBarsPerChart()-1, limit; limit=bars_counted; //---- macd counted in the 1-st buffer for( int i=0; i<limit; i++) { Macd1Buffer[i]=iMA(NULL,0,6,0,MODE_EMA,PRICE_CLOSE,i+1)-iMA(NULL,0,12,0,MODE_EMA,PRICE_CLOSE,i+1); max_M1=MathMax(Macd1Buffer[i],max_M1); min_M1=MathMin(Macd1Buffer[i],min_M1); } //---- macd counted in the 2-nd buffer for( i=0; i<limit; i++) { Signal1Buffer[i]=iMAOnArray(Macd1Buffer,Bars,5,0,MODE_SMA,i); max_S1=MathMax(Signal1Buffer[i],max_S1); min_S1=MathMin(Signal1Buffer[i],min_S1); } max1=MathMax(max_M1,max_S1); min1=MathMin(min_M1,min_S1); Comment( "\n"," Баров = ",WindowBarsPerChart()-1, "\n"," max1 = ",max1, "\n"," min1 = ",min1, "\n"," Macd1Buffer = ",Macd1Buffer[i], "\n"," Signal1Buffer = ",Signal1Buffer[i]); last=Time[0]; //---- return(0); } //+------------------------------------------------------------------+Уважаемые!Помогите разобраться.Строю MACD по предыдущему бару(i+1).Нахожу max и min среди видимых в окне индикатора значений графика MACD.Вывожу в Comment max,min и текущие значения основной и сигнальной линий.Max и min в Comment на графике отражаются верно,а текущие значения линий-НЕТ!Где промашка?И почему в Comment числа не пятизначные,ведь прописано " IndicatorDigits(Digits+1);"? Может кто-нибудь поможет разобраться.
Данные типа double выводятся с 4 десятичными цифрами после точки. Для вывода чисел с большей точностью необходимо использовать функцию DoubleToStr().
пример:
Данные типа double выводятся с 4 десятичными цифрами после точки. Для вывода чисел с большей точностью необходимо использовать функцию DoubleToStr().
Данные типа double выводятся с 4 десятичными цифрами после точки. Для вывода чисел с большей точностью необходимо использовать функцию DoubleToStr().
пример: