Скоро начну убивать себя об стену

 

Всем доброе время суток!

Помогите пожалуйста советом. Пытаюсь чтоб советник при "поглощении" предыдущим баром ПРЕДпредыдущий выдавал сигнал.

1 - если поглощение произошло вверх

2 - если поглощение произошло вниз.

Вроде все до нельзя элементарно, сравниваем цены открытия и закрытия и вуаля...так НЕТ ЖЕ. Сигналы выдает как попало.Хотя при наведении мыши на предыдущие 2 бара явно видно что последний поглощает предпоследний.

Вот текст:

int start()
{
//----

if (SShort()==1)
Alert("1");
}
if (SLong()==1)
Alert("2");
}

//----
return(0);
}

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

int SShort()
{int MS=0;
if (Open[1]>Close[2] && Close[1]<Open[2] && Open[1]>Close[1] && Open[2]>Close[2])
{MS=1;
}


return(MS);
}

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

int SLong()
{
int ML=0;
if(Open[1]<Close[2] && Close[1]>Open[2] && Open[1]<Close[1] && Open[2]<Close[2])
{ ML=1;



return(ML);
}

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

 
AYuBelov >>:

Всем доброе время суток!

Помогите пожалуйста советом. Пытаюсь чтоб советник при "поглощении" предыдущим баром ПРЕДпредыдущий выдавал сигнал.

1 - если поглощение произошло вверх

2 - если поглощение произошло вниз.

Вроде все до нельзя элементарно, сравниваем цены открытия и закрытия и вуаля...так НЕТ ЖЕ. Сигналы выдает как попало.Хотя при наведении мыши на предыдущие 2 бара явно видно что последний поглощает предпоследний.

Вот текст:

int start()
{
//----

if (SShort()==1)
Alert("1");
}
if (SLong()==1)
Alert("2");
}

//----
return(0);
}

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

int SShort()
{int MS=0;
if (Open[1]>Close[2] && Close[1]<Open[2] && Open[1]>Close[1] && Open[2]>Close[2])
  MS=1;
}


return(MS);
}

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

int SLong()
{
int ML=0;
if(Open[1]<Close[2] && Close[1]>Open[2] && Open[1]<Close[1] && Open[2]<Close[2])
 ML=1;



return(ML);
}

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


 
lascu.roman >>:


может это поможет. (эти фигурные скобки что былы перед ML и MS удалить) а как вы его скомпилировали? если это весь код он был дать ошибку при компиляций.

 
lascu.roman >>:

может это поможет.

Что именно?

 
AYuBelov >>:

Всем доброе время суток!

Помогите пожалуйста советом. Пытаюсь чтоб советник при "поглощении" предыдущим баром ПРЕДпредыдущий выдавал сигнал.

1 - если поглощение произошло вверх

2 - если поглощение произошло вниз.

Вроде все до нельзя элементарно, сравниваем цены открытия и закрытия и вуаля...так НЕТ ЖЕ. Сигналы выдает как попало.Хотя при наведении мыши на предыдущие 2 бара явно видно что последний поглощает предпоследний.

Вот текст:

int start()
{
//----

if (SShort()==1)
Alert("1");
}
if (SLong()==1)
Alert("2");
}

//----
return(0);
}

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

int SShort()
{int MS=0;
if (Open[1]>Close[2] && Close[1]<Open[2] && Open[1]>Close[1] && Open[2]>Close[2])
{MS=1;
}


return(MS);
}

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

int SLong()
{
int ML=0;
if(Open[1]<Close[2] && Close[1]>Open[2] && Open[1]<Close[1] && Open[2]<Close[2])
{ ML=1;



return(ML);
}

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

Воспользуйтесь тегами для прикрепления сырцов. На вскидку: у Вас там чехарда со скобками - так плохо видно, а рихтовать самому - эт уж слишком ;).

Успехов.

 
AYuBelov >>:

Что именно?

читай выше...подправил

 
lascu.roman >>:

читай выше...подправил


Угу...не в скобках дело...вот попробуй:

int start()
{
//----

if (SShort()==1)
Alert("1");

if (SLong()==1)
Alert("2");


return(0);
}

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

int SShort()
{int MS=0;
if (Open[1]>Close[2] && Close[1]<Open[2] && Open[1]>Close[1] && Open[2]>Close[2])
MS=1;
return(MS);
}

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

int SLong()
{
int ML=0;
if(Open[1]<Close[2] && Close[1]>Open[2] && Open[1]<Close[1] && Open[2]<Close[2])
ML=1;
return(ML);
}

//+------------------------------------------------------------------+
Компилируется без проблем. Можно просто воткнуть в editor и скомпиллировать. А скобки это тело "if" хоть без скобок хоть с скобками. На случай если туда нужно будет оператор воткнуть.

Нехорошо то что например на 15 минутках в ХХ:04 значение одно а в ХХ:05 оно меняется. Хотя бар то не сменился (((

Прога для первого класса вроде, ан нет чота не катит.

 
VladislavVG >>:

Воспользуйтесь тегами для прикрепления сырцов. На вскидку: у Вас там чехарда со скобками - так плохо видно, а рихтовать самому - эт уж слишком ;).

Успехов.

Будь другом - посмотри пожалуйста код. Ничего в голову не приходит. Все перепробовал

И честно...не знаю что такое "Воспользуйтесь тегами для прикрепления сырцов" :(.

 
AYuBelov >>:

Будь другом - посмотри пожалуйста код. Ничего в голову не приходит. Все перепробовал

И честно...не знаю что такое "Воспользуйтесь тегами для прикрепления сырцов" :(

Когда пишете код сверху панелька (меню) - на ней слева направо - НТМЛ, стрелки  SRC - это для вставки кодов програм - "сорсе кодов" по простому. Картинку можно ? Что хотите запрограммировать - может там неверно логические условия прописаны ?

 
AYuBelov >>:

Всем доброе время суток!

Помогите пожалуйста советом. Пытаюсь чтоб советник при "поглощении" предыдущим баром ПРЕДпредыдущий выдавал сигнал.

Может быть сначала научимся выражать свои мысли правильно, а то ведь мысли энергию никто не хочет тратить на расшифровку предложения непонятной конструкции.)

 
VladislavVG >>:

Когда пишете код сверху панелька (меню) - на ней слева направо - НТМЛ, стрелки SRC - это для вставки кодов програм - "сорсе кодов" по простому. Картинку можно ? Что хотите запрограммировать - может там неверно логические условия прописаны ?

Вот именно это и хочу. Чтоб можно было реагировать на возможные разворотные сигналы. Пищалку.

На картинке примерная формация доблестно предоставленая Paintом. Прямо противоположно для сигнала на продажу.

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