Мультитаймфреймовые индикаторы - страница 1127
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Дорогие все... Надеюсь, у вас все хорошо...
Я учусь программированию и сделал простой советник, который определяет низкое значение в 3 последних бара и открывает ордер на покупку... но у меня проблема, ордер не ставится... Кто-нибудь может мне помочь? Программа получает низкую цену и показывает алерт, но не выставляет ордер на покупку...
Заранее спасибо...
//--------------------------------------------------------------------
// NewBar_jeaa_Rev 2.mq4
//--------------------------------------------------------------------
#property copyright "Jeaa"
extern int GV_CantidadBarras=3; // Cantidad de barras
extern int digits=5;
//--------------------------------------------------------------------
extern double Lots = 0.01;
extern double StopLoss = 100;
extern double TakeProfit = 100;
extern int Slippage = 3;
//--------------------------------------------------------------------
bool GV_Flag_NuevaBarra=false; // Flag de una nueva barra
//======================================================================
int start() // Специальная функция. start()
{
double Precio; // переменная, регистрирующая минимальную и максимальную цену.
//--------------------------------------------------------------------
Fun_NuevaBarra(); // Вызов функции
if (GV_Flag_NuevaBarra==false) // Si no hay nueva barra...
return; // ..return
//=========================================================================
//int IndMax =ArrayMaximum(High,GV_CantidadBarras,1);// Indice de la barra del precio maximo
int IndMin =ArrayMinimum(Low, GV_CantidadBarras,1);// Indice de la barra del precio minimo
Precio=Low[IndMin];
int ticket=OrderSend(Symbol(),OP_BUY,Lots,Precio,Slippage,StopLoss,TakeProfit, "My orderrr",16384,0,Blue);
Alert(Symbol(),": Barras= ",GV_CantidadBarras, // Mostrar mensaje de precios max y min
", Min= ",DoubleToString(Precio,digits));
return;
}
void Fun_NuevaBarra() // Описание функции, которая обнаруживает ...
{ // ... una nueva barra
static datetime NewTime=0; // переменная, которая запоминает время и время суток
GV_Flag_NuevaBarra=false; // Inicializa nueva barra a falso (no hay nueva barra)
if(NewTime!=Time[0]) // Si existe nueva barra el dato es distinto de cero...
{
NewTime=Time[0]; //... y en ese caso se registra el hora y fecha de la...
GV_Flag_NuevaBarra=true; //nueva barra y se activa el flag que señaliza la...
//existencia de una nueva barra
}
}
Какую ошибку вы получаете в экспертах или на вкладке журнала в терминале?
Привет, Младен... Спасибо за ваш ответ...
2016.09.06 11:42:06.700 NewBar_jeaa_Rev 2 USDJPY,M1: Алерт: USDJPY: Barras= 3, Min= 102.11600
2016.09.06 11:41:36.561 NewBar_jeaa_Rev 2 USDJPY,M1: Алерт: USDJPY: Barras= 3, Min= 102.11600
2016.09.06 11:41:36.561 NewBar_jeaa_Rev 2 USDJPY,M1: торговые операции не разрешены настройками
2016.09.06 11:41:36.396 NewBar_jeaa_Rev 2 USDJPY,M1: инициализировано
2016.09.06 11:41:36.385 NewBar_jeaa_Rev 2 USDJPY,M1 входы: GV_CantidadBarras=3; digits=5; Lots=0.01; StopLoss=100.0; TakeProfit=100.0; Slippage=3;
2016.09.06 11:41:35.080 Expert NewBar_jeaa_Rev 2 USDJPY,M1: успешно загружен
2016.09.06 12:57:08.587 '502630': ордер buy 0.01 USDJPY открытие по рынку sl: 50.000 tp: 50.000 failed [Invalid S/L or T/P]
2016.09.06 12:57:08.268 '502630': ордер buy market 0.01 USDJPY sl: 50.000 tp: 50.000
2016.09.06 12:56:07.224 '502630': ордер buy 0.01 USDJPY открытие на рынке sl: 50.000 tp: 50.000 failed [Invalid S/L or T/P]
2016.09.06 12:56:06.921 '502630': ордер buy market 0.01 USDJPY sl: 50.000 tp: 50.000
2016.09.06 12:56:04.221 Автоматическая торговля включена
Привет, Младен... Спасибо за ваш ответ...
2016.09.06 11:42:06.700 NewBar_jeaa_Rev 2 USDJPY,M1: Alert: USDJPY: Barras= 3, Min= 102.11600
2016.09.06 11:41:36.561 NewBar_jeaa_Rev 2 USDJPY,M1: Alert: USDJPY: Barras= 3, Min= 102.11600
2016.09.06 11:41:36.561 NewBar_jeaa_Rev 2 USDJPY,M1: торговые операции не разрешены настройками
2016.09.06.06 11:41:36.396 NewBar_jeaa_Rev 2 USDJPY,M1: инициализирован
2016.09.06 11:41:36.385 NewBar_jeaa_Rev 2 USDJPY,M1 inputs: GV_CantidadBarras=3; digits=5; Lots=0.01; StopLoss=100.0; TakeProfit=100.0; Slippage=3;
2016.09.06 11:41:35.080 Expert NewBar_jeaa_Rev 2 USDJPY,M1: загружен успешно
2016.09.06 12:57:08.587 '502630': order buy 0.01 USDJPY opening at market sl: 50.000 tp: 50.000 failed [Invalid S/L or T/P]
2016.09.06 12:57:08.268 '502630': order buy market 0.01 USDJPY sl: 50.000 tp: 50.000
2016.09.06 12:56:07.224 '502630': order buy market 0.01 USDJPY opening at market sl: 50.000 tp: 50.000 failed [Invalid S/L or T/P]
2016.09.06 12:56:06.921 '502630': order buy market 0.01 USDJPY sl: 50.000 tp: 50.000
2016.09.06 12:56:04.221 Автоматическая торговля включена.
Как вы можете видеть, ваши стоп-лосс и тейк-профит неверны.
Вы неправильно их рассчитываете: стоп лосс и тейк профит рассчитываются как цена открытия ордера +- стоп лосс и/или тейк профит (+ или - зависит от типа ордеров), но не как 50 (как в вашем случае), а как цена открытия ордера +- 50*_Point (для пунктов) или 50*_Point*MathPow(10,MathMod(_Digits,2)) для расстояния в пипсах от цены открытия ордера.
Как вы можете видеть, ваши стоп-лосс и тейк-профит неверны.
Вы неправильно их рассчитываете: стоп-лосс и тейк-профит рассчитываются как цена открытия ордера +- стоп-лосс и/или тейк-профит (+ или - зависит от типа ордеров), но не как 50 (как в вашем случае), а как цена открытия ордера +- 50*_Point (для пунктов) или 50*_Point*MathPow(10,MathMod(_Digits,2)) для расстояния в пипсах от цены открытия ордера.
Уважаемый mladen...
Спасибо за вашу помощь... Я изменил:
double SL=NormalizeDouble(Precio - StopLoss*Point,Digits);
double TP=NormalizeDouble(Precio + TakeProfit*Point,Digits);
int ticket=OrderSend(Symbol(),OP_BUY,Lots,Precio,Slippage,SL,TP, "Jeaa",0,0,Blue);
И работает должным образом.
С наилучшими пожеланиями.
Хесус
Уважаемый mladen...
Спасибо за помощь... Я поменял:
double SL=NormalizeDouble(Precio - StopLoss*Point,Digits);
double TP=NormalizeDouble(Precio + TakeProfit*Point,Digits);
int ticket=OrderSend(Symbol(),OP_BUY,Lots,Precio,Slippage,SL,TP, "Jeaa",0,0,Blue);
И работает должным образом.
С наилучшими пожеланиями.
Хесус
Привет, ребята,
Не могли бы вы добавить таймфрейм в оповещение в прикрепленном файле, пожалуйста?
Большое спасибо :)
Уважаемый Младен,
Прошу прощения за то, что размещаю этот запрос здесь, так как не знаю правильного места.
Возможно ли добавить опцию Current Symbol Only в прилагаемый индикатор.
Если бы Вы могли, это бы очень помогло :)
Будьте здоровы.
Sameer
Привет, ребята,
Не могли бы вы добавить таймфрейм в оповещение в прикрепленном файле, пожалуйста?
Большое спасибо :)
Вот версия, в которой это добавлено
Уважаемый Младен,
Прошу прощения за то, что размещаю этот запрос здесь, так как не знаю правильного места.
Возможно ли добавить опцию Current Symbol Only в прилагаемый индикатор.
Если можно, то это очень помогло бы :)
Будьте здоровы.
Sameer
У вас есть очень простое решение. Добавьте эту строку :
перед строкой 64, а затем в списке символов введите "current" в любом месте строки (без ""), и он будет заменен на текущий символ. Или воспользуйтесь прикрепленным файлом :) (применяются те же правила для текущего символа: чтобы отображался только текущий символ, введите только "current" в списке символов)
У вас есть очень простое решение. Добавьте эту строку :
перед строкой 64, а затем в списке символов введите "current" в любом месте строки (без ""), и он будет заменен на текущий символ. Или воспользуйтесь прикрепленным файлом :) (применяются те же правила для текущего символа: чтобы отображался только текущий символ, введите только "current" в списке символов)