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

 

Есть ли способ правильно опубликовать код? Пробел не работает, не знаю почему.

 
RyuShin:
Есть ли способ правильно прикрепить код? Пробел не работает, не знаю почему.

Вы можете сделать так, как показано на картинке (просто вставить код в поле php)

или вы можете прикрепить код с помощью обычного вложения.

Файлы:
 
mladen:
Вы можете сделать как показано на картинке (просто вставить код в поле php) или вы можете прикрепить код с помощью обычного вложения.

Проблема в том, что я не вижу коробку. Я понятия не имею почему. Я использовал Firefox и internet explorer, но они не показали поле :/ В любом случае, я использую другой компьютер и попробую снова.

 

Итак, вот код для индикаторов.

Недельный

#property indicator_chart_window

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

//| Custom indicator initialization function |

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

int init()

{

//---- indicators

//----

return(0);

}

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

//| Custom indicator deinitialization function |

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

int deinit()

{

//----

ObjectDelete("WS1");

ObjectDelete("WS2");

ObjectDelete("WS3");

ObjectDelete("WR1");

ObjectDelete("WR2");

ObjectDelete("WR3");

ObjectDelete("WEEKLY PIVOT");

ObjectDelete("Weekly Support 1");

ObjectDelete("Weekly 2");

ObjectDelete("Weekly 3");

ObjectDelete("Weekly Pivot level");

ObjectDelete("Weekly Resistance 1");

ObjectDelete("Weekly Resistance 2");

ObjectDelete("Weekly Resistance 3");

Comment(" ");

//----

return(0);

}

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

//| Custom indicator iteration function |

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

int start()

{

//----

double rates[1][6],weekly_close,weekly_high,weekly_low;

ArrayCopyRates(rates, Symbol(), PERIOD_W1);

if(DayOfWeek() == 1)

{

if(TimeDayOfWeek(iTime(Symbol(),PERIOD_W1,1)) == 5)

{

weekly_close = rates[1][4];

weekly_high = rates[1][3];

weekly_low = rates[1][2];

}

else

{

for(int d = 5;d>=0;d--)

{

if(TimeDayOfWeek(iTime(Symbol(),PERIOD_W1,d)) == 5)

{

weekly_close = rates[d][4];

weekly_high = rates[d][3];

weekly_low = rates[d][2];

}

}

}

}

else

{

weekly_close = rates[1][4];

weekly_high = rates[1][3];

weekly_low = rates[1][2];

}

//---- Calculate Pivots

Comment("\nWeekly quotations:\nH ",weekly_high,"\nL ",weekly_low, "\nC ",weekly_close);

double R = weekly_high - weekly_low;//range

double wp = (weekly_high + weekly_low + weekly_close)/3;// Standard Pivot

double wr3 = wp + (R * 1.000);

double wr2 = wp + (R * 0.618);

double wr1 = wp + (R * 0.382);

double ws1 = wp - (R * 0.382);

double ws2 = wp - (R * 0.618);

double ws3 = wp - (R * 1.000);

drawLine(wr3,"WR3", LimeGreen,0);

drawLabel(" WR 3",wr3,LimeGreen);

drawLine(wr2,"WR2", LimeGreen,0);

drawLabel(" WR 2",wr2,LimeGreen);

drawLine(wr1,"WR1", LimeGreen,0);

drawLabel(" WR 1",wr1,LimeGreen);

drawLine(wp,"WEEKLY PIVOT",Black,1);

drawLabel(" WP",wp,Black);

drawLine(ws1,"WS1",Crimson,0);

drawLabel(" WS 1",ws1,Crimson);

drawLine(ws2,"WS2",Crimson,0);

drawLabel(" WS 2",ws2,Crimson);

drawLine(ws3,"WS3",Crimson,0);

drawLabel(" WS 3",ws3,Crimson);

//----

return(0);

}

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

void drawLabel(string name,double lvl,color Color)

{

if(ObjectFind(name) != 0)

{

ObjectCreate(name, OBJ_TEXT, 0, Time[10], lvl);

ObjectSetText(name, name, 8, "Arial", EMPTY);

ObjectSet(name, OBJPROP_COLOR, Color);

}

else

{

ObjectMove(name, 0, Time[10], lvl);

}

}

void drawLine(double lvl,string name, color Col,int type)

{

if(ObjectFind(name) != 0)

{

ObjectCreate(name, OBJ_HLINE, 0, Time[0], lvl,Time[0],lvl);

if(type == 1)

ObjectSet(name, OBJPROP_STYLE, STYLE_SOLID);

else

ObjectSet(name, OBJPROP_STYLE, STYLE_DOT);

ObjectSet(name, OBJPROP_COLOR, Col);

ObjectSet(name,OBJPROP_WIDTH,1);

}

else

{

ObjectDelete(name);

ObjectCreate(name, OBJ_HLINE, 0, Time[0], lvl,Time[0],lvl);

if(type == 1)

ObjectSet(name, OBJPROP_STYLE, STYLE_SOLID);

else

ObjectSet(name, OBJPROP_STYLE, STYLE_DOT);

ObjectSet(name, OBJPROP_COLOR, Col);

ObjectSet(name,OBJPROP_WIDTH,1);

}

}[/PHP]

Monthly

[PHP]//+------------------------------------------------------------------+

#property indicator_chart_window

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

//| Custom indicator initialization function |

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

int init()

{

//---- indicators

//----

return(0);

}

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

//| Custom indicator deinitialization function |

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

int deinit()

{

//----

ObjectDelete("MS1");

ObjectDelete("MS2");

ObjectDelete("MS3");

ObjectDelete("MR1");

ObjectDelete("MR2");

ObjectDelete("MR3");

ObjectDelete("MONTHLY PIVOT");

ObjectDelete("Monthly Support 1");

ObjectDelete("Monthly 2");

ObjectDelete("Monthly 3");

ObjectDelete("Monthly Pivot level");

ObjectDelete("Monthly Resistance 1");

ObjectDelete("Monthly Resistance 2");

ObjectDelete("Monthly Resistance 3");

Comment(" ");

//----

return(0);

}

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

//| Custom indicator iteration function |

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

int start()

{

//----

double rates[1][6],monthly_close,monthly_high,monthly_low;

ArrayCopyRates(rates, Symbol(), PERIOD_MN1);

if(DayOfWeek() == 1)

{

if(TimeDayOfWeek(iTime(Symbol(),PERIOD_MN1,1)) == 5)

{

monthly_close = rates[1][4];

monthly_high = rates[1][3];

monthly_low = rates[1][2];

}

else

{

for(int d = 5;d>=0;d--)

{

if(TimeDayOfWeek(iTime(Symbol(),PERIOD_MN1,d)) == 5)

{

monthly_close = rates[d][4];

monthly_high = rates[d][3];

monthly_low = rates[d][2];

}

}

}

}

else

{

monthly_close = rates[1][4];

monthly_high = rates[1][3];

monthly_low = rates[1][2];

}

//---- Calculate Pivots

Comment("\nMonthly quotations:\nH ",monthly_high,"\nL ",monthly_low, "\nC ",monthly_close);

double R = monthly_high - monthly_low;//range

double mp = (monthly_high + monthly_low + monthly_close)/3;// Standard Pivot

double mr3 = mp + (R * 1.000);

double mr2 = mp + (R * 0.618);

double mr1 = mp + (R * 0.382);

double ms1 = mp - (R * 0.382);

double ms2 = mp - (R * 0.618);

double ms3 = mp - (R * 1.000);

drawLine(mr3,"MR3", Lime,0);

drawLabel(" MR 3",mr3,Lime);

drawLine(mr2,"MR2", Lime,0);

drawLabel(" MR 2",mr2,Lime);

drawLine(mr1,"MR1", Lime,0);

drawLabel(" MR 1",mr1,Lime);

drawLine(mp,"MONTHLY PIVOT",Black,1);

drawLabel(" MP",mp,Black);

drawLine(ms1,"MS1",Red,0);

drawLabel(" MS 1",ms1,Red);

drawLine(ms2,"MS2",Red,0);

drawLabel(" MS 2",ms2,Red);

drawLine(ms3,"MS3",Red,0);

drawLabel(" MS 3",ms3,Red);

//----

return(0);

}

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

void drawLabel(string name,double lvl,color Color)

{

if(ObjectFind(name) != 0)

{

ObjectCreate(name, OBJ_TEXT, 0, Time[10], lvl);

ObjectSetText(name, name, 8, "Arial", EMPTY);

ObjectSet(name, OBJPROP_COLOR, Color);

}

else

{

ObjectMove(name, 0, Time[10], lvl);

}

}

void drawLine(double lvl,string name, color Col,int type)

{

if(ObjectFind(name) != 0)

{

ObjectCreate(name, OBJ_HLINE, 0, Time[0], lvl,Time[0],lvl);

if(type == 1)

ObjectSet(name, OBJPROP_STYLE, STYLE_SOLID);

else

ObjectSet(name, OBJPROP_STYLE, STYLE_DOT);

ObjectSet(name, OBJPROP_COLOR, Col);

ObjectSet(name,OBJPROP_WIDTH,1);

}

else

{

ObjectDelete(name);

ObjectCreate(name, OBJ_HLINE, 0, Time[0], lvl,Time[0],lvl);

if(type == 1)

ObjectSet(name, OBJPROP_STYLE, STYLE_SOLID);

else

ObjectSet(name, OBJPROP_STYLE, STYLE_DOT);

ObjectSet(name, OBJPROP_COLOR, Col);

ObjectSet(name,OBJPROP_WIDTH,1);

}

}
 
RyuShin:
Проблема в том, что я не вижу коробки. Я понятия не имею, почему. Я использовал Firefox и Internet Explorer, но они не показали окно :/ В любом случае, я буду использовать другой компьютер и попробую снова.

RyuShin

Вы не увидите коробку, вы увидите что-то вроде этого :

и в результате получится вот это:

paste your code here
Файлы:
code_2.gif  35 kb
 

Привет, ребята,

Посмотрите, пожалуйста, мой код, он очень простой, но я понятия не имею, почему он не работает так, как я хочу. По сути, я хочу проверить, совпадают ли два последовательных значения индикатора. Если они одинаковы, нарисовать стрелку на закрытии свечи.

now=iCustom(NULL,0,"Stoch",period,5,i+1);

previous=iCustom(NULL,0,"Stoch",period,5,i+2);

if ( (now==previous))

{

CrossUp=previous;

}

[/CODE]

The code above is not showing any arrows when it should (I checked in data window)

The parameters, indicators name is all working fine because with the following code, it is showing arrows

[CODE]

now=iCustom(NULL,0,"Stoch",period,5,i+1);

previous=iCustom(NULL,0,"Stoch",period,5,i+1);

if ( (now==previous))

{

CrossUp=previous;

}

Кто-нибудь может помочь, почему первый набор кода не работает?

Значение в окне данных одинаковое!...

Заранее спасибо!

 
yuhu:
Привет ребята,

Посмотрите, пожалуйста, мой код, он очень простой, но я понятия не имею, почему он не работает так, как я хочу. По сути, я хочу проверить, совпадают ли два последовательных значения индикатора. Если они одинаковы, нарисовать стрелку на закрытии свечи.

now=iCustom(NULL,0,"Stoch",period,5,i+1);

previous=iCustom(NULL,0,"Stoch",period,5,i+2);

if ( (now==previous))

{

CrossUp=previous;

}

[/CODE]

The code above is not showing any arrows when it should (I checked in data window)

The parameters, indicators name is all working fine because with the following code, it is showing arrows

[CODE]

now=iCustom(NULL,0,"Stoch",period,5,i+1);

previous=iCustom(NULL,0,"Stoch",period,5,i+1);

if ( (now==previous))

{

CrossUp=previous;

}

Кто-нибудь может помочь, почему первый набор кода не работает?

Значение в окне данных одинаковое!...

Заранее спасибо!

yuhu

Данные для индикаторов в окне данных отображаются только с точностью до 4 цифр, если не задано иначе с помощью функции IndicatorDigits(). То, что не отображается, является причиной того, что вы не получаете условие равенства. Используйте NormalizeDouble() и тогда это должно происходить чаще.

Используйте что-то вроде этого :

if ( (NormalizeDouble(now,4)==NormalizeDouble(previous,4)))

Или используйте другое число вместо 4, до которого вы хотите округлить значения.

 

Объективная мера CSM

Здравствуйте

Не мог бы кто-нибудь помочь мне с кодированием следующего:

Выдавать предупреждение, когда

1 - одна валюта (пример EUR на графике ниже) имеет стабильно высокие значения на нескольких таймфреймах, и

2 - вторая валюта (например, JPY на графике) имеет стабильно низкие значения на тех же таймфреймах.

Например, алерт будет показан, если при указании M15, M30, H1 и H4 (выбранные пользователем таймфреймы),

1 - евро имеет все четыре показания HiScore (переменная, по умолчанию 70) или выше, и

2 - JPY имеет все четыре показания LowScore (переменная, по умолчанию 35) или меньше.

(Для правильного отображения графика необходимо поместить файлы "hanover --- extensible functions.mgh" и "hanover --- function header.mgh" в папку experts/include. Я думаю, что также необходим шрифт "PLCC___", установленный в windows, но мне не удалось загрузить его сюда).

Спасибо!

 

Спасибо большое, Младен. Ты герой.

Берегите себя!!!

 

mladen, после того как мой метатрейдер перешел 0 часов, индикаторы недельного и месячного разворота снова заработали. Я не знаю, почему они не работают в понедельник:/ В любом случае, спасибо за внимание.