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

 

Таким образом, вы проверяете только ордера с указанным магическим числом (и символом).

dasio:
Таким образом, я проверяю ордера, которые не открыты с указанным магическим числом, правильно? Мне нужно проверить ордера с определенным символом и магическим числом. Не знаю, важно ли это, но я нашел ошибку в тестере стратегий.
 
drofwarc:
Привет всем,

Я знаю, что можно заставить советника делать паузу между сделками, либо используя Sleep(), либо записывая метку времени и ожидая n секунд после метки перед подачей нового сигнала.

Но можно ли сделать то же самое для индикатора?

Например, я хотел бы, чтобы индикатор, который строит стрелки на пересечении двух скользящих средних, пропускал n баров после пересечения, прежде чем построить другую стрелку. Другими словами, если еще одно пересечение произошло до того, как прошло n баров, индикатор будет игнорировать пересечение и не будет строить стрелку.

Я много искал, чтобы найти индикатор, который делает это, но мне не повезло.

Не мог бы кто-нибудь выложить индикатор, который уже имеет такую функцию, чтобы я мог изучить код? Или, возможно, предоставить мне пример кода, который работает для этого предложения, чтобы я мог попробовать реализовать его.

Большое спасибо,

drofwarc

УДАЧА!

Привет mladen, я знаю, что вы заняты большим количеством запросов по всему форуму. Но я был бы очень признателен, если бы вы хотя бы направили меня в сторону кодового решения для этого.

Заранее большое спасибо.

drofwarc

 

drofwarc

Функция Sleep() не работает в индикаторах, поэтому вы можете забыть о таймере из индикаторов (если вы зависите от тиков, вы не сможете получить точное время). Что касается подсчета: это не проблема с точки зрения кодирования. Если вы предоставите какой-нибудь пример, над которым вы работали, то можно будет показать, как считать в подобных случаях.

drofwarc:
BUMP!

Привет mladen, я знаю, что вы заняты большим количеством запросов по всему форуму. Но я был бы очень признателен, если бы вы хотя бы направили меня в сторону кодового решения для этого.

Заранее большое спасибо.

drofwarc
 
mladen:
drofwarc Функция Sleep() не работает в индикаторах, поэтому вы можете забыть о таймере из индикаторов (если вы зависите от тиков, вы не сможете получить точное время). Что касается подсчета: это не проблема с точки зрения кодирования. Если вы приведете какой-нибудь пример, над которым вы работали, то можно будет показать, как считать в подобных случаях.

Здравствуйте, Младен,

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

Если в течение периода оглядки присутствует действительный сигнал, то он не будет строить новую стрелку на основе текущего действительного сетапа.

Если действительный сигнал не присутствует в течение периода обратного отсчета, он построит новую стрелку на основе текущей действительной установки.

#property indicator_chart_window

#property indicator_buffers 1

#property indicator_color1 Red

#property indicator_color2 DodgerBlue

double UpArrowBuffer[];

double DownArrowBuffer[];

///////////Arrows

extern int ArrowSize = 1;

extern int Offset = 100;

extern color UpColor = White;

extern color DnColor = White;

extern color NoSignalColor = DarkGray;

extern int myWingDing1 = 233 ;

extern int myWingDing2 = 234 ;

double Poin;

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

//| Custom indicator initialization function |

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

int init() {

//---- indicator buffers mapping

SetIndexBuffer(0,UpArrowBuffer);

SetIndexBuffer(1,DownArrowBuffer);

//---- drawing settings

SetIndexStyle(0,DRAW_ARROW,0,ArrowSize, UpColor);

SetIndexArrow(0,myWingDing1);

SetIndexStyle(1,DRAW_ARROW,0,ArrowSize, DnColor);

SetIndexArrow(1,myWingDing2);

Poin = Point;

if ((Point == 0.00001) || (Point == 0.001)) Poin *= 10;

return(0);

}

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

//| Custom indicator deinitialization function |

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

int deinit() {

//----

//----

return(0);

}

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

//| Custom indicator iteration function |

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

int start() {

int limit;

int counted_bars=IndicatorCounted();

if(counted_bars>0) counted_bars--;

limit=Bars-counted_bars;

for(int i=limit; i>=0; i--)

{

if (Close Open)

{

UpArrowBuffer = Low - Offset*Point;

}

if (Close > Open && Close < Open)

{

DownArrowBuffer = High + Offset*Point;

}

}

return(0);

}

//+------------------------------------------------------------------+*/

Надеюсь, это понятно .

С уважением,

drofwarc

 

помогите

может ли кто-нибудь помочь мне с этим?

я хочу использовать два "VoltyChannel_Stop_v2.1_TRO_MODIFIED_VERSION+.mq4" на одном графике с разными настройками, но

когда я размещаю два, отображается только одно ценовое поле. есть ли способ иметь возможность показывать оба ценовых поля?

 

drofwarc

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

drofwarc:
Привет, Младен,

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

Если в течение периода оглядки присутствует действительный сигнал, то он не будет строить новую стрелку на основе текущего действительного сетапа.

Если действительный сигнал не присутствует в течение периода обратного отсчета, он построит новую стрелку на основе текущей действительной установки.

#property indicator_chart_window

#property indicator_buffers 1

#property indicator_color1 Red

#property indicator_color2 DodgerBlue

double UpArrowBuffer[];

double DownArrowBuffer[];

///////////Arrows

extern int ArrowSize = 1;

extern int Offset = 100;

extern color UpColor = White;

extern color DnColor = White;

extern color NoSignalColor = DarkGray;

extern int myWingDing1 = 233 ;

extern int myWingDing2 = 234 ;

double Poin;

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

//| Custom indicator initialization function |

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

int init() {

//---- indicator buffers mapping

SetIndexBuffer(0,UpArrowBuffer);

SetIndexBuffer(1,DownArrowBuffer);

//---- drawing settings

SetIndexStyle(0,DRAW_ARROW,0,ArrowSize, UpColor);

SetIndexArrow(0,myWingDing1);

SetIndexStyle(1,DRAW_ARROW,0,ArrowSize, DnColor);

SetIndexArrow(1,myWingDing2);

Poin = Point;

if ((Point == 0.00001) || (Point == 0.001)) Poin *= 10;

return(0);

}

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

//| Custom indicator deinitialization function |

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

int deinit() {

//----

//----

return(0);

}

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

//| Custom indicator iteration function |

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

int start() {

int limit;

int counted_bars=IndicatorCounted();

if(counted_bars>0) counted_bars--;

limit=Bars-counted_bars;

for(int i=limit; i>=0; i--)

{

if (Close Open)

{

UpArrowBuffer = Low - Offset*Point;

}

if (Close > Open && Close < Open)

{

DownArrowBuffer = High + Offset*Point;

}

}

return(0);

}

//+------------------------------------------------------------------+*/

Надеюсь, это понятно .

С уважением,

drofwarc
Файлы:
test.gif  41 kb
_test.mq4  3 kb
 
ZANKY:
может ли кто-нибудь помочь мне с этим?

Я хочу использовать два "VoltyChannel_Stop_v2.1_TRO_MODIFIED_VERSION+.mq4" на одном графике с разными настройками, но

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

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

ftShortName = "tbb "+ символ + tChartPeriod +MA_Length + ATR_Length + Kv + MA_Mode +MoneyRisk + MA_Price;

 

Спасибо!

cja

Большое спасибо! Все работает идеально.

 

Здравствуйте, Младен. Я не очень хорошо знаю английский, извините.

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

Файлы:
1234.gif  23 kb
rmi.mq4  5 kb
 
mladen:
drofwarc

Прилагается модифицированный индикатор, который может отсчитывать бары от последнего сигнала того же типа, прежде чем разрешить появление нового сигнала. Вот пример с установленным расстоянием в 15 баров:

Здравствуйте, mladen,

Спасибо! Это именно то, что я искал.

Всего наилучшего в праздничный сезон!

drofwarc

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