Помощь в кодировании - страница 515

 
mladen:
Если все остальное (MetQuotesID и прочее) настроено нормально, то нужно только SendNotificaton() и все должно работать

Действует, но для каждой новой свечи .... сигнал "push smartfon" должен быть только сигнальным индикатором. Ошибка в коде отключения - но где?

 
popej30:
Действует, но для каждой новой свечи .... сигнал "push smartfon" должен быть только сигнальным индикатором. Ошибка в коде - но где?

Найдите SendEmail() и поместите его сразу после этой строки.

 
mladen:
Найдите SendEmail() и поместите его сразу после этой строки

Супер, работает... спасибо

 

Где улучшить код для изменения элементов стрелки?

int deinit()

{

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

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));

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

Файлы:
vvv.jpg  95 kb
 
popej30:
Где улучшить код для изменения элементов стрелки?
int deinit()

{

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

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);

 

Привет, Гай.

Я не уверен, что это возможно, но если кто-то и сможет это сделать, то это будете вы.

Не могли бы вы закодировать прилагаемый индикатор так, чтобы он отображался в виде гистограмм в нижней части графика?

Я родился и вырос человеком гистограмм!

Хороших выходных

Файлы:
 
Jeeves:
Привет, Гай.

Я не уверен, что это возможно, но если кто-то сможет это сделать, то это будете вы.

Не могли бы вы закодировать прилагаемый индикатор так, чтобы он отображался в виде гистограмм в нижней части графика?

Я родился и вырос человеком гистограмм!

Хороших выходных

Дживс

Я не уверен, что это можно сделать таким образом. Я проверю.

 

Большое спасибо, мой друг, ценю это.

 

Если это невозможно, то, возможно, можно воспользоваться приложенным ниже вариантом. Я полагаю, что они будут отображать один и тот же результат. Только по-другому.

Мне пришлось бы разместить три экземпляра индикатора MA cross на графике...., но нет ничего идеального!

Файлы:
 
Jeeves:
Если это невозможно, то, может быть, подойдет прикрепленный ниже вариант. Я полагаю, что они будут отображать один и тот же результат. Только по-другому. Мне пришлось бы разместить три экземпляра индикатора MA cross на графике....but nothings perfect!

Jeeves

Насколько я понимаю, эта версия работает нормально. Я прав?