Помощь в кодировании - страница 241

 

Привет всем,

Я не хочу, чтобы мой советник открывал позицию, если уже есть позиция, идущая в том же направлении на том же ценовом уровне (используя renko). По сути это будет выглядеть примерно так:

Если направление предыдущего бара вверх, открываем длинную позицию, если нет длинной позиции на том же ценовом уровне (+-2 пункта, например). То же самое для короткой.

Возможно ли это?

 

Черт, так легко

 

Черт, так просто.

Спасибо, Младен

 

Младен, у меня проблема.

Я нашел ваш индикатор Динамические зоны Спирмена, нашел и другие. Но я не могу сделать то, что я хочу. Я хочу в одном окне несколько корреляций. Вы меня понимаете? Я хочу, чтобы компьютер не останавливался, используя ваш индикатор. Но это выглядело как стек Спирмена.

Но у меня это невозможно сделать. Я накладываю индикаторы друг на друга, но вижу только один.

Файлы:
eurjpymh1.png  72 kb
 
Air92:
Младен, у меня проблема.

Я нашел ваш индикатор Динамические зоны Спирмена, нашел и другие. Но я не могу сделать то, что я хочу. Я хочу в одном окне получить корреляцию. Вы меня понимаете? Я хочу, чтобы компьютер не останавливался, используя ваш индикатор. Но это выглядело как стек Спирмена.

Но у меня это не получается. Я накладываю индикаторы друг на друга, но вижу только один.

Вот как выглядит индикатор из этого сообщения: https: //www.mql5.com/en/forum/general, когда я применяю его несколько раз в одном и том же подокне.

Файлы:
spearman.gif  49 kb
 

Вот как индикатор с этого поста: https://www.mql5.com/en/forum/general выглядит, когда я применяю его несколько раз в том же дополнительном окне [/ QUOTE]

Младен, спасибо за nmc!

 
BlackCoq:
Привет всем,

Я не хочу, чтобы мой советник открывал позицию, если уже есть позиция, идущая в том же направлении на том же ценовом уровне (используя renko). По сути, это будет выглядеть примерно так:

Если направление предыдущего бара - вверх, открываем длинную позицию, если нет длинной позиции на том же ценовом уровне (+-2 пункта, например). То же самое для короткой.

Возможно ли это?

Возможно, будет достаточно найти цену открытия за последние 15 сделок, проверить, если какая-либо из них находится в пределах +- 2 пунктов от текущей цены, затем проверить, если эта сделка находится в том же направлении, что и предполагаемая новая сделка, и если нет, отправить ордер. Будет ли это работать?

Спасибо,

Аксель

 
BlackCoq:
Возможно, будет достаточно найти цену открытия для последних 15 сделок, проверить, если любая из них находится в пределах +- 2 пунктов от текущей цены, затем проверить, если эта сделка в том же направлении, что и предполагаемая новая сделка, и если нет, отправить ордер. Будет ли это работать?

Спасибо,

Аксель

Аксель

Это можно сделать.

Просто открытые ордера должны быть просканированы на наличие нужного типа и их цены открытия должны быть сравнены с желаемой новой ценой открытия или бары, на которых они были открыты, могут быть сравнены с баром, который служит критерием для открытия.

 
mladen:
Аксель

Это можно сделать.

Просто открытые ордера должны быть отсканированы на нужный тип и их цены открытия должны быть сравнены с желаемой новой ценой открытия или бары, на которых они были открыты, могут быть сравнены с баром, который служит критерием для открытия.

Получится ли написать функцию, подобную приведенной ниже, 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);

}

//+------------------------------------------------------------------+

Причина обращения: