Спрашивайте! - страница 86

 
int start()

{

int limit;

int counted_bars=IndicatorCounted();

//---- проверка на возможные ошибки

if(counted_bars<0) return(-1);

//---- последний подсчитанный бар будет пересчитан

if(counted_bars>0) counted_bars--;

limit=Bars-counted_bars;

//---- основной цикл

for(int i=0; i<limit; i++)

{

//---- ma_shift установлен в 0, потому что SetIndexShift вызывался ранее

ExtBlueBuffer=iMA(NULL,0,JawsPeriod,0,MODE_SMMA,PRICE_MEDIAN,i);

ExtRedBuffer=iMA(NULL,0,TeethPeriod,0,MODE_SMMA,PRICE_MEDIAN,i);

ExtLimeBuffer=iMA(NULL,0,LipsPeriod,0,MODE_SMMA,PRICE_MEDIAN,i);

}

//---- готово

return(0);

}

Привет кодеры,

Я пытаюсь разобраться в некоторых функциях MQL4 и наткнулся на этот пример кода, как указано выше. Не мог бы кто-нибудь любезно объяснить:

1.)в чем причина использования переменной "limit"?

2.)Я попытался запустить код примера, который всегда возвращает значение 2, каково назначение значения "limit" 2 в цикле for,

3.)на каких позиционных барах работает этот цикл for?

Спасибо.

 

поиск простого ea

привет ... я ищу простой советник.

советник на дневной пробой с трейлинг стопом и функцией фиксации прибыли.

Существует?

 

Вопрос по индикатору#property

Каким выражением кодировать индикатор #property в виде линии, а не тире (по умолчанию)?

Простой вопрос, но ответ пока неизвестен!

Дэйв

Спасибо, что ответили на этот вопрос для меня!

 

icustom ! индикатор -> ea

доброе утро, являюсь новичком в языке mq4, буду признателен за помощь, заранее благодарю!

в индикаторе есть две переменные:

bool TurnedUp = false

bool TurnedDown = false

как использовать функцию icustom в советнике, чтобы считать значения TurnedUp и TurnedDown?

iCustom(Symbol(), "postfin",0,TurnedUp,0,0,0); ....

iCustom(Symbol(), "postfin",0,TurnedDown,0,0,0);

.....my probations, не работает, возможно потому что работает с "bool" ???

часть EA и ошибка ...

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

//| БАЗОВЫЙ РАСЧЕТ ЭКСПЕРТА |

//| НАЧНИТЕ ЗДЕСЬ |

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

iCustom(Symbol(), "postfin",0,TurnedUp,0,0,0);

iCustom(Symbol(), "postfin",0,TurnedDown,0,0,0);

//EnterLong = TurnedUp;

// EnterShort = TurnedDown;

// EnterLong = true;

// if( TurnedUp == true ) EnterLong = true;

// EnterShort = TurnedDown;

//}

//if(icustom(Symbol(), "postfin", "TurnedUp",0,0) == True && EnterLong== 1 )

//{

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

//| БАЗОВЫЙ РАСЧЕТ ЭКСПЕРТА |

//| КОНЕЦ ЗДЕСЬ |

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

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

//| ВЫ НЕ ДОЛЖНЫ ИЗМЕНЯТЬ НИЧЕГО НИЖЕ ЭТОЙ ЯЧЕЙКИ |

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

// УСЛОВИЕ ВХОДА В ЛОНГ

if(EnterLong == true && CountLongs(MagicNumber)== 0)

{

Файлы:
 

Кто-нибудь знает, как это сделать?

Вот что я пытаюсь закодировать:

У меня есть график с прикрепленным к нему RSI. Затем я перетаскиваю MA в окно RSI и выбираю применить к "данным предыдущего индикатора". Теперь моя скользящая средняя использует значения RSI для своих расчетов.

Я не могу понять, как это закодировать в советнике. В значениях Applied_Price в mq4 нет возможности выбрать "данные предыдущего индикатора" для скользящей средней.

В основном пытаюсь получить текущее скользящее среднее текущего RSI.

Если вы знаете, что я пытаюсь сделать, и, возможно, у вас есть решение, я буду очень признателен за любую помощь.

Спасибо,

Wolfe

 

нужна помощь в написании простого кода

Уважаемые коллеги!

У меня есть кусок кода для временного фильтра, который отключает советника в определенные часы:

extern bool UseHourTrade = True;

extern int FromHourTrade = 8;

extern int ToHourTrade = 18;

-------------------------------------------------//

if (UseHourTrade){

if ((Hour()>=FromHourTrade && Hour()<=ToHourTrade)) {

Comment("Неторговые часы!");

return(0);

____________________________________________

НО я хочу отключить советника именно в пятницу перед выходными. Мне не нужна никакая открытая позиция после 8.00 CET в пятницу. Не могли бы Вы оказать мне услугу и выложить такой код или исправить вышеупомянутый код?

Я прошу Вашего совета, потому что я не программист.

С наилучшими пожеланиями,

Уоррен

 

Для уменьшения ресурсов компьютера

Я видел пример кода, обычно каждый код вычисляет себя каждый тик,

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

Тогда ПК на клиентском терминале будет обрабатывать или вычислять каждый тик, это заставляет клиентские ПК требовать больше ресурсов, таких как RAM и CPU.

Идея для уменьшения ресурсов ПК и итераций на клиентском терминале, если мы можем контролировать эту группу кода для вычисления на :

1. Каждую полную минуту и не вычислять при каждом тике. 2. Каждый полный бар M1 и не вычислять в каждом тике.

Кто-нибудь может дать пример кода для этого?

наилучшие пожелания,

BornToWin

 

Алерт на любом индикаторе MTF....

Codersguru,

Возможно ли добавить алерт (желательно голосовой) на какой-либо индикатор MTF? Я хочу, чтобы алерт звучал, когда все 3 критерия выполнены в моем RSI-3TF, если это возможно.

Спасибо за ответ.

Искренне.

 
BornToWin:
Я видел пример кода, обычно каждый код вычисляет сам себя каждые тики,

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

Тогда ПК на клиентском терминале будет обрабатывать или вычислять каждый тик, это заставляет клиентские ПК требовать больше ресурсов, таких как RAM и CPU.

Идея уменьшить ресурсы ПК и итерации на клиентском терминале, если мы можем контролировать эту группу кода для вычисления на :

1. Каждая полная минута и не вычисляется на каждом тике. 2. Каждый полный бар M1 и не вычислять в каждом тике
.

Кто-нибудь может дать пример кода для этого?

наилучшие пожелания,

BornToWin
if(iVolume(NULL,PERIOD_M1,0) == 1)

{

//do what you want here, first tick of every M1 bar.

}
 

Ключ есть! Есть еще идеи?!

Спасибо за ответ, Мишель,

Я получил ключ.

Но иногда объем первого тика каждого бара M1 > 1.

Если iVolume() > 1 на первом тике, то расчет не произошел !?

Или первый тик этого бара M1 должен быть = 1 ?

И мы не можем изменить выражение на >= 1, верно?

Это сделает эту идею бесполезной, потому что она будет вычислять до конца бара!

Моя идея состоит в том, чтобы вычислять только в конце ТФ M1.

Есть другие идеи?

BornToWin

Michel:
if(iVolume(NULL,PERIOD_M1,0) == 1)

{

//do what you want here, first tick of every M1 bar.

}