Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Доброе утро всем.
Я видел много версий этого индикатора и красные свечи у меня никогда не появляются, могли бы исправить ошибку ????.
Большое спасибо.
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 LimeGreen
#property indicator_color2 Red
//---- индикаторные буферы
double ind_buffer1[];
double ind_buffer2[];
double ind_buffer3[];
//----
double CB = 0, valueh1 = 0, valuel = 0, valueh = 0, value = 0, price = 0, hi = 1, lo = 1;
double resh = 0, resl = 0, deltah = 0, deltal = 0;
int CurrentBar=0;
//+------------------------------------------------------------------+
//| Пользовательская функция инициализации индикатора |
//+------------------------------------------------------------------+
int init()
{
//---- 1 дополнительный буфер, используемый для подсчета.
IndicatorBuffers(3);
//---- настройки рисования
SetIndexStyle(0, DRAW_HISTOGRAM, STYLE_SOLID, 2);
SetIndexStyle(1, DRAW_HISTOGRAM, STYLE_SOLID, 2);
IndicatorDigits(MarketInfo(Symbol(), MODE_DIGITS) + 1);
SetIndexDrawBegin(0, 34);
SetIndexDrawBegin(1, 34);
//---- 3 отображение буферов индикаторов
if(!SetIndexBuffer(0, ind_buffer1) &&
!SetIndexBuffer(1, ind_buffer2) &&
!SetIndexBuffer(2, ind_buffer3))
Print("cannot set indicator buffers!");
//---- имя для DataWindow и метки подокна индикатора
IndicatorShortName("DeltaForce");
SetIndexLabel(0, "DF1");
SetIndexLabel(1, "DF2");
//---- инициализация выполнена
return(0);
}
//+------------------------------------------------------------------+
//| Delta Force |
//+------------------------------------------------------------------+
int start()
{
for(CB = 0 ; CB <= Bars ; CB++)
{
CurrentBar = Bars - CB;
if(Close[CurrentBar] > Close[CurrentBar+1])
{
resl = 0;
if(resh == 0)
дельта = 0;
deltah = deltah + (Close[CurrentBar] - Close[CurrentBar+1]);
// valueh = High[CurrentBar];
реш = 1;
}
if(resh == 0)
deltah = 0;
ind_buffer1[CurrentBar] = deltah;
if(Close[CurrentBar] < Close[CurrentBar+1] )
{
реш = 0;
if(resl == 0)
дельтал = 0;
deltal = deltal + (Close[CurrentBar+1] - Close[CurrentBar]);
//valuel = Low[CurrentBar];
resl = 1;
}
if(resl == 0 )
deltal=0;
ind_buffer2[CurrentBar] = deltal;
}
//---- сделано
return(0);
}
//+------------------------------------------------------------------+
Доброе утро всем.
Я видел много версий этого индикатора и красные свечи у меня никогда не появляются, могли бы исправить ошибку ????.
Большое спасибо.
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 LimeGreen
#property indicator_color2 Red
//---- индикаторные буферы
double ind_buffer1[];
double ind_buffer2[];
double ind_buffer3[];
//----
double CB = 0, valueh1 = 0, valuel = 0, valueh = 0, value = 0, price = 0, hi = 1, lo = 1;
double resh = 0, resl = 0, deltah = 0, deltal = 0;
int CurrentBar=0;
//+------------------------------------------------------------------+
//| Пользовательская функция инициализации индикатора |
//+------------------------------------------------------------------+
int init()
{
//---- 1 дополнительный буфер, используемый для подсчета.
IndicatorBuffers(3);
//---- настройки рисования
SetIndexStyle(0, DRAW_HISTOGRAM, STYLE_SOLID, 2);
SetIndexStyle(1, DRAW_HISTOGRAM, STYLE_SOLID, 2);
IndicatorDigits(MarketInfo(Symbol(), MODE_DIGITS) + 1);
SetIndexDrawBegin(0, 34);
SetIndexDrawBegin(1, 34);
//---- 3 отображение буферов индикаторов
if(!SetIndexBuffer(0, ind_buffer1) &&
!SetIndexBuffer(1, ind_buffer2) &&
!SetIndexBuffer(2, ind_buffer3))
Print("cannot set indicator buffers!");
//---- имя для DataWindow и метки подокна индикатора
IndicatorShortName("DeltaForce");
SetIndexLabel(0, "DF1");
SetIndexLabel(1, "DF2");
//---- инициализация выполнена
return(0);
}
//+------------------------------------------------------------------+
//| Delta Force |
//+------------------------------------------------------------------+
int start()
{
for(CB = 0 ; CB <= Bars ; CB++)
{
CurrentBar = Bars - CB;
if(Close[CurrentBar] > Close[CurrentBar+1])
{
resl = 0;
if(resh == 0)
дельта = 0;
deltah = deltah + (Close[CurrentBar] - Close[CurrentBar+1]);
// valueh = High[CurrentBar];
реш = 1;
}
if(resh == 0)
deltah = 0;
ind_buffer1[CurrentBar] = deltah;
if(Close[CurrentBar] < Close[CurrentBar+1] )
{
реш = 0;
if(resl == 0)
дельтал = 0;
deltal = deltal + (Close[CurrentBar+1] - Close[CurrentBar]);
//valuel = Low[CurrentBar];
resl = 1;
}
if(resl == 0 )
deltal=0;
ind_buffer2[CurrentBar] = deltal;
}
//---- сделано
return(0);
}
//+------------------------------------------------------------------+Попробуйте сейчас: _test.mq4
Стэнвелл,
Пара фотографий, показывающих все это, помогла бы.
Биг БиПривет, Биг Би,
Хорошая мысль, я выложу несколько графиков завтра.
Ваше здоровье.
Стэн
Вот график AUD, который я отметил вручную. Красные квадраты - это перекрывающиеся бары. Слева есть квадрат, внутри которого только три бара, поэтому он не подходит под определение. Однако, если бы эта нога была значительной, скажем, больше 6 X ATR, я бы тоже посчитал их как свинг (просто трудно торговать только с тремя барами), но подумал, что это требование усложнит кодирование, поэтому мы можем пока оставить его в стороне.
thx.
Стэн
Привет Младен и Mrtools!
Мне снова нужна ваша помощь, можете ли вы добавить визуальный / акустический сигнал к этому индикатору?
Заранее спасибо, будьте здоровы!
МЛАДЕН, доброе утро.
Спасибо большое, попробовал их _test и право появляется.
Любая помощь у меня есть здесь, хотя его доминирование гораздо больше, чем мое, хотя в ProRealTime / VISUALCHART да я могу помочь больше.
С наилучшими пожеланиями.
Здравствуйте,
У меня есть индикатор, и я хочу ограничить расчет баров.
Оригинальный код был таким:
{
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
int limit = MathMin(Bars-counted_bars,Bars-1);[/CODE]
i changed it with this:
[CODE]int start()
{
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
int limit = MathMin(NBars-counted_bars,NBars-1);Правильно ли это? Индикатор вроде бы работает нормально, но у меня есть сомнения, действительно ли я ограничил расчет баров.
Привет,
У меня есть индикатор, и я хочу ограничить расчет баров.
Исходный код был таким:
{
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
int limit = MathMin(Bars-counted_bars,Bars-1);[/CODE]
i changed it with this:
[CODE]int start()
{
int counted_bars=IndicatorCounted();
if(counted_bars<0) return(-1);
if(counted_bars>0) counted_bars--;
int limit = MathMin(NBars-counted_bars,NBars-1);thefxpros
Нет. Сделайте это следующим образом:
int limit = MathMin(MathMin(Bars-counted_bars,Bars-1),NBars);
Но в этом случае вы всегда должны быть уверены, что NBars всегда > 0.
Привет, Младен
Если вы можете помочь мне, добавить оси X и Y, тогда я могу поместить его в угол.
и могу настроить размер шрифта, извините за мой английский.
X2014-PIPSv2
большое спасибо.
Привет, Младен
Если вы можете помочь мне, добавьте оси X и Y, тогда я могу поместить его в угол.
и могу настроить размер шрифта, извините за мой английский.
X2014-PIPSv2
большое спасибо.blueface
Они уже есть: переменные posX и posY в коде.