Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Если все остальное (MetQuotesID и прочее) настроено нормально, то нужно только SendNotificaton() и все должно работать
Действует, но для каждой новой свечи .... сигнал "push smartfon" должен быть только сигнальным индикатором. Ошибка в коде отключения - но где?
Действует, но для каждой новой свечи .... сигнал "push smartfon" должен быть только сигнальным индикатором. Ошибка в коде - но где?
Найдите SendEmail() и поместите его сразу после этой строки.
Найдите SendEmail() и поместите его сразу после этой строки
Супер, работает... спасибо
Где улучшить код для изменения элементов стрелки?
{
//----------------------------------------------------------------------+
for (int i = ObjectsTotal()-1; i >= 0; i--)
if (StringSubstr(ObjectName(i), 0, StringLen(PREFIX)) == PREFIX)
ObjectDelete(ObjectName(i));
return(0);
//----------------------------------------------------------------------+
}
int init()
{
IndicatorBuffers(8);
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,SmthBulls);
SetIndexStyle(1,DRAW_LINE);
SetIndexBuffer(1,SmthBears);
SetIndexStyle(2,DRAW_LINE);
SetIndexBuffer(2,SigBulls);
SetIndexStyle(3,DRAW_LINE);
SetIndexBuffer(3,SigBears);
SetIndexBuffer(4,Bulls);
SetIndexBuffer(5,Bears);
SetIndexBuffer(6,AvgBulls);
SetIndexBuffer(7,AvgBears);
string short_name="Bolero Ravel("+Mode+","+Length+","+Smooth+","+Signal+",,"+ModeMA+")";
IndicatorShortName(short_name);
SetIndexLabel(0,"Bulls");
SetIndexLabel(1,"Bears");
SetIndexLabel(2,"SignalBulls");
SetIndexLabel(3,"SignalBears");
//------------------------------------------------------------------------------------------+
SetIndexDrawBegin(0,Length+Smooth+Signal);
SetIndexDrawBegin(1,Length+Smooth+Signal);
SetIndexDrawBegin(2,Length+Smooth+Signal);
SetIndexDrawBegin(3,Length+Smooth+Signal);
//------------------------------------------------------------------------------------------+
return(0);
}
int start()
{
int i, shift, limit, counted_bars=IndicatorCounted();
double Price1, Price2, smax, smin;
if ( counted_bars < 0 ) return(-1);
if ( counted_bars ==0 ) limit=Bars-Length+Smooth+Signal-1;
if ( counted_bars < 1 )
for(i=1;i<Length+Smooth+Signal;i++)
{
//-----------------------------------------------------------------------+
Bulls=0;
Bears=0;
AvgBulls=0;
AvgBears=0;
SmthBulls=0;
SmthBears=0;
SigBulls=0;
SigBears=0;
}
if(counted_bars>0) limit=Bars-counted_bars;
limit--;
for( shift=limit; shift>=0; shift--)
//-----------------------------------------------------------------------+
{
Price1 = iMA(NULL,0,1,0,0,Price,shift);
Price2 = iMA(NULL,0,1,0,0,Price,shift+1);
//-----------------------------------------------------------------------+
if (Mode==0)
{
Bulls[shift] = 0.5*(MathAbs(Price1-Price2)+(Price1-Price2));
Bears[shift] = 0.5*(MathAbs(Price1-Price2)-(Price1-Price2));
}
if (Mode==1)
{
smax=High;
smin=Low[Lowest(NULL,0,MODE_LOW,Length,shift)];
Bulls[shift] = Price1 - smin;
Bears[shift] = smax - Price1;
}
if (Mode==2)
{
Bulls[shift] = 0.5*(MathAbs(High[shift]-High[shift-2])+(High[shift]-High[shift-2]));
Bears[shift] = 0.5*(MathAbs(Low[shift-1]-Low[shift])+(Low[shift-1]-Low[shift]));
}
//------------------------------------------------------------------------+
}
for( shift=limit; shift>=0; shift--)
{
AvgBulls[shift]=iMAOnArray(Bulls,0,Length,0,ModeMA,shift);
AvgBears[shift]=iMAOnArray(Bears,0,Length,0,ModeMA,shift);
}
for( shift=limit; shift>=0; shift--)
{
SmthBulls[shift]=iMAOnArray(AvgBulls,0,Smooth,0,ModeMA,shift);
SmthBears[shift]=iMAOnArray(AvgBears,0,Smooth,0,ModeMA,shift);
}
for( shift=limit; shift>=0; shift--)
{
if (OverBought > 0 && OverSold > 0 )
{
SigBulls[shift]=OverBought/100*(SmthBulls[shift]+SmthBears[shift]);
SigBears[shift]=OverSold/100*(SmthBulls[shift]+SmthBears[shift]);
}
else
{
SigBulls[shift]=iMAOnArray(SmthBulls,0,Signal,0,ModeMA,shift);
SigBears[shift]=iMAOnArray(SmthBears,0,Signal,0,ModeMA,shift);
}
}
//----------------------------------------------------------------------------------------+
for (i = limit; i >= 0; i--)
{
if(SmthBullsSmthBears)
arrows_wind(i,"Up",Arr_otstup ,242,Red,Arr_width,false); //! ! ! !
else ObjectDelete(PREFIX+"Up"+TimeToStr(Time,TIME_DATE|TIME_SECONDS));
if(SmthBulls>SmthBears && SmthBulls<SmthBears)
arrows_wind(i,"Dn",Arr_otstup ,241,Aqua,Arr_width,true); //! ! ! !
else ObjectDelete(PREFIX + "Dn" +TimeToStr(Time,TIME_DATE|TIME_SECONDS));
//----------------------------------------------------------------------------------------+
Где улучшить код для изменения элементов стрелки?
{
//----------------------------------------------------------------------+
for (int i = ObjectsTotal()-1; i >= 0; i--)
if (StringSubstr(ObjectName(i), 0, StringLen(PREFIX)) == PREFIX)
ObjectDelete(ObjectName(i));
return(0);
//----------------------------------------------------------------------+
}
int init()
{
IndicatorBuffers(8);
SetIndexStyle(0,DRAW_LINE);
SetIndexBuffer(0,SmthBulls);
SetIndexStyle(1,DRAW_LINE);
SetIndexBuffer(1,SmthBears);
SetIndexStyle(2,DRAW_LINE);
SetIndexBuffer(2,SigBulls);
SetIndexStyle(3,DRAW_LINE);
SetIndexBuffer(3,SigBears);
SetIndexBuffer(4,Bulls);
SetIndexBuffer(5,Bears);
SetIndexBuffer(6,AvgBulls);
SetIndexBuffer(7,AvgBears);
string short_name="Bolero Ravel("+Mode+","+Length+","+Smooth+","+Signal+",,"+ModeMA+")";
IndicatorShortName(short_name);
SetIndexLabel(0,"Bulls");
SetIndexLabel(1,"Bears");
SetIndexLabel(2,"SignalBulls");
SetIndexLabel(3,"SignalBears");
//------------------------------------------------------------------------------------------+
SetIndexDrawBegin(0,Length+Smooth+Signal);
SetIndexDrawBegin(1,Length+Smooth+Signal);
SetIndexDrawBegin(2,Length+Smooth+Signal);
SetIndexDrawBegin(3,Length+Smooth+Signal);
//------------------------------------------------------------------------------------------+
return(0);
}
int start()
{
int i, shift, limit, counted_bars=IndicatorCounted();
double Price1, Price2, smax, smin;
if ( counted_bars < 0 ) return(-1);
if ( counted_bars ==0 ) limit=Bars-Length+Smooth+Signal-1;
if ( counted_bars < 1 )
for(i=1;i<Length+Smooth+Signal;i++)
{
//-----------------------------------------------------------------------+
Bulls=0;
Bears=0;
AvgBulls=0;
AvgBears=0;
SmthBulls=0;
SmthBears=0;
SigBulls=0;
SigBears=0;
}
if(counted_bars>0) limit=Bars-counted_bars;
limit--;
for( shift=limit; shift>=0; shift--)
//-----------------------------------------------------------------------+
{
Price1 = iMA(NULL,0,1,0,0,Price,shift);
Price2 = iMA(NULL,0,1,0,0,Price,shift+1);
//-----------------------------------------------------------------------+
if (Mode==0)
{
Bulls[shift] = 0.5*(MathAbs(Price1-Price2)+(Price1-Price2));
Bears[shift] = 0.5*(MathAbs(Price1-Price2)-(Price1-Price2));
}
if (Mode==1)
{
smax=High;
smin=Low[Lowest(NULL,0,MODE_LOW,Length,shift)];
Bulls[shift] = Price1 - smin;
Bears[shift] = smax - Price1;
}
if (Mode==2)
{
Bulls[shift] = 0.5*(MathAbs(High[shift]-High[shift-2])+(High[shift]-High[shift-2]));
Bears[shift] = 0.5*(MathAbs(Low[shift-1]-Low[shift])+(Low[shift-1]-Low[shift]));
}
//------------------------------------------------------------------------+
}
for( shift=limit; shift>=0; shift--)
{
AvgBulls[shift]=iMAOnArray(Bulls,0,Length,0,ModeMA,shift);
AvgBears[shift]=iMAOnArray(Bears,0,Length,0,ModeMA,shift);
}
for( shift=limit; shift>=0; shift--)
{
SmthBulls[shift]=iMAOnArray(AvgBulls,0,Smooth,0,ModeMA,shift);
SmthBears[shift]=iMAOnArray(AvgBears,0,Smooth,0,ModeMA,shift);
}
for( shift=limit; shift>=0; shift--)
{
if (OverBought > 0 && OverSold > 0 )
{
SigBulls[shift]=OverBought/100*(SmthBulls[shift]+SmthBears[shift]);
SigBears[shift]=OverSold/100*(SmthBulls[shift]+SmthBears[shift]);
}
else
{
SigBulls[shift]=iMAOnArray(SmthBulls,0,Signal,0,ModeMA,shift);
SigBears[shift]=iMAOnArray(SmthBears,0,Signal,0,ModeMA,shift);
}
}
//----------------------------------------------------------------------------------------+
for (i = limit; i >= 0; i--)
{
if(SmthBullsSmthBears)
arrows_wind(i,"Up",Arr_otstup ,242,Red,Arr_width,false); //! ! ! !
else ObjectDelete(PREFIX+"Up"+TimeToStr(Time,TIME_DATE|TIME_SECONDS));
if(SmthBulls>SmthBears && SmthBulls<SmthBears)
arrows_wind(i,"Dn",Arr_otstup ,241,Aqua,Arr_width,true); //! ! ! !
else ObjectDelete(PREFIX + "Dn" +TimeToStr(Time,TIME_DATE|TIME_SECONDS));
//----------------------------------------------------------------------------------------+
Поскольку вы никогда не публикуете весь код, я предположу (а из параметров функций это очевидно), что это код из forex tsd, который изменен.
В таком случае
arrows_wind(i,"Up",Arr_otstup,242,Red,Arr_width,false);
должен быть заменен на
arrows_wind(i,"Up",Arr_otstup,242,Red,Arr_width,true);
и
arrows_wind(i,"Dn",Arr_otstup,241,Aqua,Arr_width,true);
с
arrows_wind(i,"Dn",Arr_otstup,241,Aqua,Arr_width,false);
Привет, Гай.
Я не уверен, что это возможно, но если кто-то и сможет это сделать, то это будете вы.
Не могли бы вы закодировать прилагаемый индикатор так, чтобы он отображался в виде гистограмм в нижней части графика?
Я родился и вырос человеком гистограмм!
Хороших выходных
Привет, Гай.
Я не уверен, что это возможно, но если кто-то сможет это сделать, то это будете вы.
Не могли бы вы закодировать прилагаемый индикатор так, чтобы он отображался в виде гистограмм в нижней части графика?
Я родился и вырос человеком гистограмм!
Хороших выходныхДживс
Я не уверен, что это можно сделать таким образом. Я проверю.
Большое спасибо, мой друг, ценю это.
Если это невозможно, то, возможно, можно воспользоваться приложенным ниже вариантом. Я полагаю, что они будут отображать один и тот же результат. Только по-другому.
Мне пришлось бы разместить три экземпляра индикатора MA cross на графике...., но нет ничего идеального!
Если это невозможно, то, может быть, подойдет прикрепленный ниже вариант. Я полагаю, что они будут отображать один и тот же результат. Только по-другому. Мне пришлось бы разместить три экземпляра индикатора MA cross на графике....but nothings perfect!
Jeeves
Насколько я понимаю, эта версия работает нормально. Я прав?