![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Привет всем,
Я не хочу, чтобы мой советник открывал позицию, если уже есть позиция, идущая в том же направлении на том же ценовом уровне (используя renko). По сути это будет выглядеть примерно так:
Если направление предыдущего бара вверх, открываем длинную позицию, если нет длинной позиции на том же ценовом уровне (+-2 пункта, например). То же самое для короткой.
Возможно ли это?
Черт, так легко![](https://c.mql5.com/forextsd/smiles/nerd.png)
Черт, так просто.![](https://c.mql5.com/forextsd/smiles/nerd.png)
Спасибо, Младен
Младен, у меня проблема.
Я нашел ваш индикатор Динамические зоны Спирмена, нашел и другие. Но я не могу сделать то, что я хочу. Я хочу в одном окне несколько корреляций. Вы меня понимаете? Я хочу, чтобы компьютер не останавливался, используя ваш индикатор. Но это выглядело как стек Спирмена.
Но у меня это невозможно сделать. Я накладываю индикаторы друг на друга, но вижу только один.
Младен, у меня проблема.
Я нашел ваш индикатор Динамические зоны Спирмена, нашел и другие. Но я не могу сделать то, что я хочу. Я хочу в одном окне получить корреляцию. Вы меня понимаете? Я хочу, чтобы компьютер не останавливался, используя ваш индикатор. Но это выглядело как стек Спирмена.
Но у меня это не получается. Я накладываю индикаторы друг на друга, но вижу только один.Вот как выглядит индикатор из этого сообщения: https: //www.mql5.com/en/forum/general, когда я применяю его несколько раз в одном и том же подокне.
Вот как индикатор с этого поста: https://www.mql5.com/en/forum/general выглядит, когда я применяю его несколько раз в том же дополнительном окне [/ QUOTE]
Младен, спасибо за nmc!
Привет всем,
Я не хочу, чтобы мой советник открывал позицию, если уже есть позиция, идущая в том же направлении на том же ценовом уровне (используя renko). По сути, это будет выглядеть примерно так:
Если направление предыдущего бара - вверх, открываем длинную позицию, если нет длинной позиции на том же ценовом уровне (+-2 пункта, например). То же самое для короткой.
Возможно ли это?Возможно, будет достаточно найти цену открытия за последние 15 сделок, проверить, если какая-либо из них находится в пределах +- 2 пунктов от текущей цены, затем проверить, если эта сделка находится в том же направлении, что и предполагаемая новая сделка, и если нет, отправить ордер. Будет ли это работать?
Спасибо,
Аксель
Возможно, будет достаточно найти цену открытия для последних 15 сделок, проверить, если любая из них находится в пределах +- 2 пунктов от текущей цены, затем проверить, если эта сделка в том же направлении, что и предполагаемая новая сделка, и если нет, отправить ордер. Будет ли это работать?
Спасибо,
АксельАксель
Это можно сделать.
Просто открытые ордера должны быть просканированы на наличие нужного типа и их цены открытия должны быть сравнены с желаемой новой ценой открытия или бары, на которых они были открыты, могут быть сравнены с баром, который служит критерием для открытия.
Аксель
Это можно сделать.
Просто открытые ордера должны быть отсканированы на нужный тип и их цены открытия должны быть сравнены с желаемой новой ценой открытия или бары, на которых они были открыты, могут быть сравнены с баром, который служит критерием для открытия.Получится ли написать функцию, подобную приведенной ниже, 20 раз или около того для разных "i=OrdersTotal()-1", а затем вызвать все функции и сопоставить их с новой ценой открытия?
Спасибо.
Может кто-нибудь подсказать мне, что я сделал не так, нижеприведенный код 2 EMA cross over с алертами, он отказывается работать.Pls может кто-нибудь помочь скомпилировать и работать на mt4 build 600+:
#property copyright "wnk"
#property link "www.wnk.com"
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 Lime
#property indicator_color2 Red
//--- буферы
double ExtMapBuffer1[];
double ExtMapBuffer2[];
//внешняя переменная......
//+------------------------------------------------------------------+
//| Пользовательская функция инициализации индикатора |
//+------------------------------------------------------------------+
int init()
{
//---- индикаторы
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);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Пользовательская функция деинициализации индикатора |
//+------------------------------------------------------------------+
int deinit()
{
//----
//----
return(0);
}
//+------------------------------------------------------------------+
//| Пользовательская функция итерации индикатора |
//+------------------------------------------------------------------+
int start()
{
static datetime LastAlertTime = TimeCurrent();
int counted_bars=IndicatorCounted(),
предел;
if(counted_bars<0)
return(-1);
if(counted_bars>0)
counted_bars--;
limit=Bars-counted_bars;
while(limit)
{
double ema13=iMA(NULL,0,13,0,MODE_EMA,PRICE_CLOSE,0);
double ema5=iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,0);
double b4ema13=iMA(NULL,0,13,0,MODE_EMA,PRICE_CLOSE,1);
double b4ema5=iMA(NULL,0,5,0,MODE_EMA,PRICE_CLOSE,1);
double mom=iMomentum(NULL,0,14,PRICE_CLOSE,0);
double b4mom=iMomentum(NULL,0,14,PRICE_CLOSE,1);
// обновление оповещений
if((LastAlertTime!=Time[0])&&(ema5>ema13)&&(ema5>b4ema5)&&(ema13>b4ema13)&&(mom>b4mom)&&(mom>98.6591))
ExtMapBuffer1[limit]=High[limit]+5*Point;
LastAlertTime = Time[0];
Alert(Symbol()," ",Period(), "M Price UP");
// алерт на продажу
if((LastAlertTime!=Time[0])&&(ema5<ema13)&&(ema5<b4ema5)&&(ema13<b4ema13)&&(mom<b4mom)&&(mom<100.6872))
ExtMapBuffer2[limit]=Low[limit]-5*Point;
LastAlertTime = Time[0];
Alert(Symbol()," ",Period(), "M Цена вниз");
}
return(0);
}
//+------------------------------------------------------------------+