Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Есть ли способ правильно опубликовать код? Пробел не работает, не знаю почему.
Есть ли способ правильно прикрепить код? Пробел не работает, не знаю почему.
Вы можете сделать так, как показано на картинке (просто вставить код в поле php)
или вы можете прикрепить код с помощью обычного вложения.
Вы можете сделать как показано на картинке (просто вставить код в поле php) или вы можете прикрепить код с помощью обычного вложения.
Проблема в том, что я не вижу коробку. Я понятия не имею почему. Я использовал Firefox и internet explorer, но они не показали поле :/ В любом случае, я использую другой компьютер и попробую снова.
Итак, вот код для индикаторов.
Недельный
//+------------------------------------------------------------------+
//| 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);
}
}Проблема в том, что я не вижу коробки. Я понятия не имею, почему. Я использовал Firefox и Internet Explorer, но они не показали окно :/ В любом случае, я буду использовать другой компьютер и попробую снова.
RyuShin
Вы не увидите коробку, вы увидите что-то вроде этого :
и в результате получится вот это:
Привет, ребята,
Посмотрите, пожалуйста, мой код, он очень простой, но я понятия не имею, почему он не работает так, как я хочу. По сути, я хочу проверить, совпадают ли два последовательных значения индикатора. Если они одинаковы, нарисовать стрелку на закрытии свечи.
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;
}
Кто-нибудь может помочь, почему первый набор кода не работает?
Значение в окне данных одинаковое!...
Заранее спасибо!
Привет ребята,
Посмотрите, пожалуйста, мой код, он очень простой, но я понятия не имею, почему он не работает так, как я хочу. По сути, я хочу проверить, совпадают ли два последовательных значения индикатора. Если они одинаковы, нарисовать стрелку на закрытии свечи.
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() и тогда это должно происходить чаще.
Используйте что-то вроде этого :
Или используйте другое число вместо 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 часов, индикаторы недельного и месячного разворота снова заработали. Я не знаю, почему они не работают в понедельник:/ В любом случае, спасибо за внимание.