Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Mntiwana, в параметре Bar to Use, если вы поставите ноль, он будет принимать сигналы на еще открытом баре (опасно для советника, ИМХО), если больше нуля, то советник будет получать сигналы от закрытых баров обратно от открытого бара, так что если у вас BarToUse = 2, то ваш советник будет проверять 2 бара назад.
привет mladen....пожалуйста помогите мне....ı был опубликован но я думаю вы не видите...хорошо...у меня есть индикатор...нужна histo версия.спасибо большое
привет mladen....пожалуйста помогите мне....ı я выложил но я думаю вы не видите...хорошо...у меня есть индикатор...мне нужна версия histo.спасибо вам большое
aress
Есть ли у вас оригинальный (недекомпилированный) исходный код индикатора? Если да, выложите, пожалуйста, исходный mq4-файл, чтобы над ним можно было поработать.
_________________
PS: вы также можете проверить это https://www.mql5.com/en/forum/174961/page4 Насколько я вижу, это все.
Привет, ребята,
Пожалуйста, взгляните на мой код.
Этот индикатор вызывает другой индикатор с помощью функции icustom.
Проблема заключается в том, что иногда, даже когда условия для сигналов не выполняются,
индикатор все равно выдает ложные звуковые сигналы, и эти ложные сигналы не отображаются стрелками.
Я не знаю, в чем проблема. Я пробовал (с моими ограниченными знаниями), но безуспешно.
Как сделать так, чтобы ложные предупреждения прекратились? Как сделать так, чтобы звуковое оповещение происходило только при наличии стрелки?
Пожалуйста, помогите.
Спасибо.
int start()
{
int counted_bars=IndicatorCounted();
//----
if(counted_bars>0) counted_bars--;
int limit=Bars-counted_bars;
int j;
for(int i=limit; i>=0; i--)
{
arr_up = EMPTY_VALUE; arr_dn = EMPTY_VALUE;
j=i;
double var1 = 0;
double var2 = 0;
for (j = i; j <= i + 9; j++) var2 += MathAbs(High[j] - Low[j]);
var1 = var2 / 10.0;
double sellprevious = iCustom(NULL,0, "MA-Repaint", FastEMA,SlowEMA,SlowEMA,signal,price,0,i);
double buyprevious = iCustom(NULL,0, "MA-Repaint", FastEMA,SlowEMA,SlowEMA,signal,price,1,i);
static datetime LastAlert;
datetime curbar = Time[0];
if (buyprevious !=EMPTY_VALUE )
{
arr_up=iLow(Symbol(),0,i) - (var1/2);
DrawLine("EntryLine11",iHigh(Symbol(),0,i+1),EntryLineColor);
if ( LastAlert != curbar && !upalert){
Alert (Symbol()," ",Period(), "BUY");
upalert=true;
downalert=false;
LastAlert = curbar;
}
}
else if(sellprevious !=EMPTY_VALUE )
{
arr_dn=iHigh(Symbol(),0,i) + (var1/2);
DrawLine("EntryLine11",iLow(Symbol(),0,i+1),EntryLineColor);
if (LastAlert != curbar && !downalert){
Alert (Symbol()," ",Period(), "SELL");
downalert=true;
upalert=false;
LastAlert = curbar;
}
}
}
Привет, ребята,
Пожалуйста, взгляните на мой код.
Этот индикатор вызывает другой индикатор с помощью функции icustom.
Проблема заключается в том, что иногда, даже когда условия для сигналов не выполняются,
индикатор все равно выдает ложные звуковые сигналы, и эти ложные сигналы не отображают стрелки.
Я не знаю, в чем проблема. Я пробовал (с моими ограниченными знаниями), но безуспешно.
Как сделать так, чтобы ложные предупреждения прекратились? Как сделать так, чтобы звуковое оповещение происходило только при наличии стрелки?
Пожалуйста, помогите.
Спасибо.
int start()
{
int counted_bars=IndicatorCounted();
//----
if(counted_bars>0) counted_bars--;
int limit=Bars-counted_bars;
int j;
for(int i=limit; i>=0; i--)
{
arr_up = EMPTY_VALUE; arr_dn = EMPTY_VALUE;
j=i;
double var1 = 0;
double var2 = 0;
for (j = i; j <= i + 9; j++) var2 += MathAbs(High[j] - Low[j]);
var1 = var2 / 10.0;
double sellprevious = iCustom(NULL,0, "MA-Repaint", FastEMA,SlowEMA,SlowEMA,signal,price,0,i);
double buyprevious = iCustom(NULL,0, "MA-Repaint", FastEMA,SlowEMA,SlowEMA,signal,price,1,i);
static datetime LastAlert;
datetime curbar = Time[0];
if (buyprevious !=EMPTY_VALUE )
{
arr_up=iLow(Symbol(),0,i) - (var1/2);
DrawLine("EntryLine11",iHigh(Symbol(),0,i+1),EntryLineColor);
if ( LastAlert != curbar && !upalert){
Alert (Symbol()," ",Period(), "BUY");
upalert=true;
downalert=false;
LastAlert = curbar;
}
}
else if(sellprevious !=EMPTY_VALUE )
{
arr_dn=iHigh(Symbol(),0,i) + (var1/2);
DrawLine("EntryLine11",iLow(Symbol(),0,i+1),EntryLineColor);
if (LastAlert != curbar && !downalert){
Alert (Symbol()," ",Period(), "SELL");
downalert=true;
upalert=false;
LastAlert = curbar;
}
}
}
luffy
Не могли бы вы выложить и вызванный индикатор, чтобы его можно было протестировать?
Mntiwana, по поводу Bar to Use, если вы поставите ноль, то советник будет брать сигналы на еще открытом баре (опасно для советника, ИМХО), если больше нуля, то советник будет получать сигналы с закрытых баров назад от открытого бара, так что если у вас BarToUse = 2, то ваш советник будет проверять 2 бара назад.
Уважаемые MLADEN и MRTOOLS,
спасибо за помощь, извините, что отнял у вас много времени, спрашивая так много ....... .......so в случае этого советника, что лучше и подходит, какой бар должен быть добавлен..... я хочу, когда медленная линия MA пересекла полностью быструю линию MA (в любом случае) ......... на втором следующем баре, сделка должна быть выполнена, можем ли мы закодировать таким образом, что после пересечения, сколько баров спустя сделка может быть выполнена, например, после пересечения на первом баре, после пересечения на втором или третьем баре? картинки прилагаются, чтобы лучше объяснить вопрос, спасибо.
с уважением
Вот индикаторы.
Спасибо.
Mntiwana, в Bar to Use если вы поставите ноль, то советник будет принимать сигналы на еще открытом баре (опасно для советника, ИМХО), если больше нуля, то советник будет получать сигналы с закрытых баров назад от открытого бара, поэтому если у вас BarToUse = 2, то ваш советник будет проверять 2 бара назад.
Уважаемый MRTOOLS,
Вы имели ввиду .... бар использовать = 2 ...... 2 бара после пересечения...не 2 N бара, когда вы написали Bars BACK, я запутался, моя вина....поправьте меня пожалуйста. спасибо.
с уважением
Уважаемый MRTOOLS,
вы имели ввиду .... бар для использования = 2 ...... 2 бара после пересечения...не 2 N бара, когда вы написали Bars BACK, я запутался, моя вина....пожалуйста, поправьте меня. спасибо.
с уважениемmntiwana
Нет, но когда bars to use == 2, то пересечение будет проверяться через 2 бара от текущего бара - он не будет проверять пересечение на текущем баре. Таким образом, с задержкой в 2 бара
mntiwana Нет, но когда bars to use == 2, то пересечение будет проверяться через 2 бара от текущего бара - оно не будет проверять пересечение на текущем баре. Таким образом, с задержкой в 2 бара
Дорогой МЛАДЕН,
Спасибо, босс, значит, в этом случае код может быть таким? Пожалуйста, поправьте меня,
с уважением
===================================================================
оригинальный код "простого советника по пересечению МА"
//
#define _doNothing 0
#define _doBuy 1
#define _doSell 2
int start()
{
int doWhat = _doNothing;
double diffc = iMA(NULL,0,Ma1Period,0,Ma1Method,Ma1Price,BarToUse) -iMA(NULL,0,Ma2Period,0,Ma2Method,Ma2Price,BarToUse);
double diffp = iMA(NULL,0,Ma1Period,0,Ma1Method,Ma1Price,BarToUse+1)-iMA(NULL,0,Ma2Period,0,Ma2Method,Ma2Price,BarToUse+1);
if ((diffc*diffp)<0)
if (diffc>0)
doWhat = _doBuy;
else doWhat = _doSell;
if (doWhat==_doNothing) return(0);
//
================================================
изменено следующим образом
#define _doNothing 0
#define _doBuy 1
#define _doSell 2
int start()
{
int doWhat = _doNothing;
double diffc = iCustom(NULL,0, "Hull parabolic 2.1",PERIOD_CURRENT,Ma1Period,Ma1Price,2,0,0,BarToUse)
-iCustom(NULL,0, "Hull parabolic 2.1",PERIOD_CURRENT,Ma2Period,Ma2Price,2,0 ,0,BarToUse);
double diffp = iCustom(NULL,0, "Hull parabolic 2.1",PERIOD_CURRENT,Ma1Period,Ma1Price,2,0 ,0,BarToUse==2)
-iCustom(NULL,0, "Hull parabolic 2.1",PERIOD_CURRENT,Ma2Period,Ma2Price,2,0 ,0,BarToUse==2);
if ((diffc*diffp)<0)
if (diffc>0)
doWhat = _doBuy;
else doWhat = _doSell;
if (doWhat==_doNothing) return(0);
//
=====================================