Чувствую себя двоечником в 5 классе)))
Да никуда она не пропадает. Просто алгоритмическая ошибка. Запустите этот, слегка подправленный код на EURJPY, M30 и в пределах 1000 бар поймете в чем дело.
Файлы:
bloods.mq4
2 kb
аааааааааааааааааааааааааааа
понятно, но не понятно как теперь запрограммировать, то что я хочу
Вот окончательный исправленный вариант, отлично подходит для расстановки стопов, но нужен ещё индикатор тренда или просто МА, для анализирования направления
Файлы:
_blo0dsstop.mq4
3 kb
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Сегодня утром решил написать простой индикатор... Но я не могу понять в чём дело!
Индикатор прост как две капли воды (рисует линию в отдалении 30 пунктов от открытия бычьей свечи, если медвежья, то продолжает линию на том же уровне. То же с медвежьими свечками. Это у меня получилось на ура! Но когда открытие бычьей свечи ниже открытия прошлой бычьей, то нужно оставить линию на прошлом уровне, Вот тут и начались проблемы).
При вставке
if(v1 < v3)
{v1=v3;}
ЛИНИЯ ПРОПАДАЕТ!!! Думаю уже минут 90 в чём дело. Тему удалю когда разберусь!
#property indicator_chart_window
#property indicator_buffers 2
#property indicator_color1 ForestGreen
#property indicator_color2 Red
#property indicator_width1 2
#property indicator_width2 2
extern double stopl=30;
//---- buffers
double CA1[];
double CA2[];
double v1, v2;
double v3;
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int init()
{
//---- indicators
/*
SetIndexStyle(0,DRAW_ARROW);
SetIndexStyle(1,DRAW_ARROW);
*/
SetIndexStyle(0,DRAW_LINE);
SetIndexStyle(1,DRAW_LINE);
SetIndexBuffer(0,CA1);
SetIndexBuffer(1,CA2);
SetIndexArrow( 0, 251);
SetIndexArrow( 1, 251);
//----
return(0);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int start() {
int counted_bars = IndicatorCounted();
if(counted_bars < 0) return(-1);
if (counted_bars > 0) counted_bars--;
int i, limit;
limit=Bars - counted_bars-1;
for(i=limit;i>=0;i--)
{
if ( Close[i] > Open[i] ) ///bar vverh
{v3=v1;
v1=Open[i] - stopl*Point;
}
if ( Close[i] < Open[i] ) ///bar vniz
{v2=stopl*Point + Open[i]; }
if ( Close[i] == Open[i] )
{v1=CA1[i+1]; v2=CA2[i+1];}
if(v1 < v3)
{v1=v3;}
CA1[i]=v1;
CA2[i]=v2;
}
return(0);
}