[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 309
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Помогите пожалуйста!
Выводятся только две линии МАшек, хотя код эквивалентный для всех четырех линий.В чем проблема?
#property indicator_separate_window // Индик. рисуется в отдельном окне
#property indicator_buffers 4 // Количество буферов
#property indicator_color1 Blue // Цвет первой линии
#property indicator_color2 Red // Цвет второй линии
#property indicator_color3 Olive
#property indicator_color4 Teal
double Buf_ROC_MA40[],Buf_ROC_MA20[],Buf_MA40[],Buf_MA20[]; // Объявление массивов (под буферы индикатора)
//--------------------------------------------------------------------
int init() // Специальная функция init()
{
SetIndexBuffer(0,Buf_MA40); // Назначение массива буферу
SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);// Стиль линии
SetIndexBuffer(1,Buf_MA20); // Назначение массива буферу
SetIndexStyle (1,DRAW_LINE,STYLE_SOLID,2);// Стиль линии
SetIndexBuffer(3,Buf_ROC_MA40); // Назначение массива буферу
SetIndexStyle (3,DRAW_LINE,STYLE_SOLID,2);// Стиль линии
SetIndexBuffer(4,Buf_ROC_MA40); // Назначение массива буферу
SetIndexStyle (4,DRAW_LINE,STYLE_SOLID,2);// Стиль линии
return; // Выход из спец. ф-ии init()
}
//--------------------------------------------------------------------
int start() // Специальная функция start()
{
int i, // Индекс бара
History=3000,
Counted_bars; // Количество просчитанных баров
double ma20,ma40,MA40[],MA20[],MA40_s[],MA20_s[],ma40_s,ma20_s,ROC_MA40[],ROC_MA20[];
//--------------------------------------------------------------------
// Counted_bars=IndicatorCounted(); // Количество просчитанных баров
i=Bars;//-Counted_bars-1; // Индекс первого непосчитанного
while(i>=0) // Цикл по непосчитанным барам
{
ma20=iMA("EURUSD",PERIOD_M1,20,0,MODE_SMA,PRICE_CLOSE,i);
ma20_s=iMA("EURUSD",PERIOD_M1,20,0,MODE_SMA,PRICE_CLOSE,i+20);
ma40=iMA("EURUSD",PERIOD_M1,40,0,MODE_SMA,PRICE_CLOSE,i);
ma40_s=iMA("EURUSD",PERIOD_M1,40,0,MODE_SMA,PRICE_CLOSE,i+40);
Alert("ma20=",ma20, " ma20_s=",ma20_s," ma40_s=",ma40_s," ma40=",ma40);
MA40_s[i]=ma40_s;
MA40[i]=ma40;
MA20[i]=ma20;
MA20_s[i]=ma20_s;
Buf_MA40[i]=ma40;
Buf_MA20[i]=ma20;
ROC_MA40[i]=MA40[i]-MA40_s[i];
Buf_ROC_MA40[i]=ROC_MA40[i];
ROC_MA20[i]=MA20[i]-MA20_s[i];
Buf_ROC_MA20[i]=ROC_MA20[i];
i--;
// Расчёт индекса следующего бара
}
//--------------------------------------------------------------------
return; // Выход из спец. ф-ии start()
}
1.Порекомендуйте, плз, отладчик (желательно с пошаговой отладкой чтобы можно было посмотреть промежуточные значения переменных).
2.Как можно вывести отладочные данные и куда ( в какое окно), а то пльзоваться алертами неудобно.
3.Как можно обновить версию MQL?
Подскажите плиз!
Как сделать чтоб советник торговал только на европейской сессии?
Помогите пожалуйста!
Выводятся только две линии МАшек, хотя код эквивалентный для всех четырех линий.В чем проблема?
Одну ошибку я нашел. После буфера 1 шел сразу же буфер 3. Буфер 2 был пропущен
Только не стоило бы машки и разность машек выводить в одном окне. У них значения различаются более чем на порядок
Подскажите плиз!
Как сделать чтоб советник торговал только на европейской сессии?
Поставь сразу в начале модуля старт
if(Hour()<7 || Hour()>15)return(0);
Просьба посмотреть код еще раз.Убрал МАшки т.к. у вновь получаемых значений совсем другой масштаб.
Все равно ничего не выводится.
#property indicator_separate_window // Индик. рисуется в отдельном окне
#property indicator_buffers 2 // Количество буферов
#property indicator_color1 Blue // Цвет первой линии
#property indicator_color2 Red // Цвет второй линии
//#property indicator_color3 Olive
//#property indicator_color4 Teal
double Buf_ROC_MA40[],Buf_ROC_MA20[],Buf_MA40[],Buf_MA20[]; // Объявление массивов (под буферы индикатора)
//--------------------------------------------------------------------
int init() // Специальная функция init()
{
//SetIndexBuffer(0,Buf_MA40); // Назначение массива буферу
//SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);// Стиль линии
//SetIndexBuffer(1,Buf_MA20); // Назначение массива буферу
//SetIndexStyle (1,DRAW_LINE,STYLE_SOLID,2);// Стиль линии
SetIndexBuffer(0,Buf_ROC_MA40); // Назначение массива буферу
SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);// Стиль линии
SetIndexBuffer(1,Buf_ROC_MA20); // Назначение массива буферу
SetIndexStyle (1,DRAW_LINE,STYLE_SOLID,2);// Стиль линии
return; // Выход из спец. ф-ии init()
}
//--------------------------------------------------------------------
int start() // Специальная функция start()
{
int i, // Индекс бара
History=3000,
Counted_bars; // Количество просчитанных баров
double ma20,ma40,MA40[],MA20[],MA40_s[],MA20_s[],ma40_s,ma20_s,ROC_MA40[],ROC_MA20[];
//--------------------------------------------------------------------
// Counted_bars=IndicatorCounted(); // Количество просчитанных баров
i=Bars;//-Counted_bars-1; // Индекс первого непосчитанного
while(i>=0) // Цикл по непосчитанным барам
{
ma20=iMA("EURUSD",PERIOD_M1,20,0,MODE_SMA,PRICE_CLOSE,i);
ma20_s=iMA("EURUSD",PERIOD_M1,20,0,MODE_SMA,PRICE_CLOSE,i+20);
ma40=iMA("EURUSD",PERIOD_M1,40,0,MODE_SMA,PRICE_CLOSE,i);
ma40_s=iMA("EURUSD",PERIOD_M1,40,0,MODE_SMA,PRICE_CLOSE,i+40);
MA40_s[i]=ma40_s;
MA40[i]=ma40;
MA20[i]=ma20;
MA20_s[i]=ma20_s;
Buf_MA40[i]=ma40;
Buf_MA20[i]=ma20;
ROC_MA40[i]=MA40[i]-MA40_s[i];
Buf_ROC_MA40[i]=ROC_MA40[i];
ROC_MA20[i]=MA20[i]-MA20_s[i];
Buf_ROC_MA20[i]=ROC_MA20[i];
i--;
// Расчёт индекса следующего бара
}
//--------------------------------------------------------------------
return; // Выход из спец. ф-ии start()
}
Просьба посмотреть код еще раз.Убрал МАшки т.к. у вновь получаемых значений совсем другой масштаб.
Все равно ничего не выводится.
#property indicator_separate_window // Индик. рисуется в отдельном окне
#property indicator_buffers 2 // Количество буферов
#property indicator_color1 Blue // Цвет первой линии
#property indicator_color2 Red // Цвет второй линии
//#property indicator_color3 Olive
//#property indicator_color4 Teal
double Buf_ROC_MA40[],Buf_ROC_MA20[],Buf_MA40[],Buf_MA20[]; // Объявление массивов (под буферы индикатора)
//--------------------------------------------------------------------
int init() // Специальная функция init()
{
//SetIndexBuffer(0,Buf_MA40); // Назначение массива буферу
//SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);// Стиль линии
//SetIndexBuffer(1,Buf_MA20); // Назначение массива буферу
//SetIndexStyle (1,DRAW_LINE,STYLE_SOLID,2);// Стиль линии
SetIndexBuffer(0,Buf_ROC_MA40); // Назначение массива буферу
SetIndexStyle (0,DRAW_LINE,STYLE_SOLID,2);// Стиль линии
SetIndexBuffer(1,Buf_ROC_MA20); // Назначение массива буферу
SetIndexStyle (1,DRAW_LINE,STYLE_SOLID,2);// Стиль линии
return; // Выход из спец. ф-ии init()
}
//--------------------------------------------------------------------
int start() // Специальная функция start()
{
int i, // Индекс бара
History=3000,
Counted_bars; // Количество просчитанных баров
double ma20,ma40,MA40[],MA20[],MA40_s[],MA20_s[],ma40_s,ma20_s,ROC_MA40[],ROC_MA20[];
//--------------------------------------------------------------------
// Counted_bars=IndicatorCounted(); // Количество просчитанных баров
i=Bars;//-Counted_bars-1; // Индекс первого непосчитанного
while(i>=0) // Цикл по непосчитанным барам
{
ma20=iMA("EURUSD",PERIOD_M1,20,0,MODE_SMA,PRICE_CLOSE,i);
ma20_s=iMA("EURUSD",PERIOD_M1,20,0,MODE_SMA,PRICE_CLOSE,i+20);
ma40=iMA("EURUSD",PERIOD_M1,40,0,MODE_SMA,PRICE_CLOSE,i);
ma40_s=iMA("EURUSD",PERIOD_M1,40,0,MODE_SMA,PRICE_CLOSE,i+40);
MA40_s[i]=ma40_s;
MA40[i]=ma40;
MA20[i]=ma20;
MA20_s[i]=ma20_s;
Buf_MA40[i]=ma40;
Buf_MA20[i]=ma20;
ROC_MA40[i]=MA40[i]-MA40_s[i];
Buf_ROC_MA40[i]=ROC_MA40[i];
ROC_MA20[i]=MA20[i]-MA20_s[i];
Buf_ROC_MA20[i]=ROC_MA20[i];
i--;
// Расчёт индекса следующего бара
}
//--------------------------------------------------------------------
return; // Выход из спец. ф-ии start()
}
Ошибок слишком много.
В основном ошибка в работе с массивами.
Помогите еще решить такую проблему - появляется сигнал на покупку/продажу, советник открывает сделку, выставляет профит и стоп. И вот если сделка закрывается по стопу на этой же свече, то советник открывает сделку еще раз, а надо чтоб не открывал т.е. на одном сигнале открывалась тока одна сделка.
Как это сделать?
Как это сделать?
Время закрытия последнего ордера должно быть меньше времени открытия текущего бара.
Если это не так, сделку не открываем.
Время закрытия последнего ордера должно быть меньше времени открытия текущего бара.
Если это не так, сделку не открываем.
Я чё то запутался.
Дык а как он ПЕРВУЮ то сделку откроет если в условии написать чтоб он не входил пока хоть одной сделки не будет??