Огромная просьба помочь с кодом, не думаю что сложно. - страница 3

 

Да смысл придираться к словам и форме изложения мысли? Да, я новичек в плане функционирования программ. Для меня лично меню - это список индикаторов - свойства - [определенное значение, подлежащее регулированию] например Alerts = True/ False. Извиняюсь, если выразился непонятно. Меня интересует алерт по достижению заданного значения ширины свечи или более ( или возможность регулирования этого значения в меню- в моем понимании. Я не знаю как это еще объяснить своими словами, приношу извинения.. А что касается если вникнуть в смысл самого кода в целом- я его не понимаю из-за отсутствия опыта в области mql, А сами подумайте вы много понимали в первую неделю изучения данной темы?..

+что касается, где у свечи значение?. да я сам этого не понимаю, по причине опять таки неопытности. Собственно, исходя из этого я и приложил сам файл индикатора, чтобы потенциальный помогающий внес его в терминал, увидел конкретный принцип работы и уже исходя из этого и понял, как профессионал в этой области,- где прописано значение свечи This Candle Full. Нехитрая логика подсказывает что этот ответ заключается либо в строке

int Digits53 = Digits + (Digits+1)%2;

либо

MyComm1 = "This Candle Full: " + DoubleToStr((High[0]-Low[0])*MathPow(10,Digits53), 0) + "pp",

 
proadmin:
Да смысл придираться к словам и форме изложения мысли? Да, я новичек в плане функционирования программ. Для меня лично меню - это список индикаторов - свойства - [определенное значение, подлежащее регулированию] например Alerts = True/ False. Извиняюсь, если выразился непонятно. Меня интересует алерт по достижению заданного значения ширины свечи или более ( или возможность регулирования этого значения в меню- в моем понимании. Я не знаю как это еще объяснить своими словами, приношу извинения.. А что касается если вникнуть в смысл самого кода в целом- я его не понимаю из-за отсутствия опыта в области mql, А сами подумайте вы много понимали в первую неделю изучения данной темы?..

Спасибо - до свидания,

спасибо за потраченное время.

 

Мда... Похоже на этом форуме намного легче обличить новичка в неопытности и неточной терминологии, нежели реально помочь... В общем, я так понял, никто мне в этом деле не поможет...

 
if((High[0]-Low[0])/Point>=120) Alert("Бар больше 120 пунктов) 
// Пользуйтесь и процветайте !!!
 
proadmin:

Мда... Похоже на этом форуме намного легче обличить новичка в неопытности и неточной терминологии, нежели реально помочь... В общем, я так понял, никто мне в этом деле не поможет...


Нужно правильно замотивировать и... сразу результат.
 
r772ra: Спасибо Вам Огромнющее)))! Здорово, что есть такие отзывчивые люди))) Вот только, что-то я как то криво делаю... Куда бы не вставил данное условие, выдает ошибки... 
'MyComm1' - Semicolon expected или 
'ObjectCreate' - Semicolon expected или 
'{' - Semicolon expected Очень стеснительно еще раз переспрашивать, когда тебе уже помогли.. Куда нужно это прописать?? Еще раз приношу извинения за незнание mql..) Но всё равно уже 100 раз спасибо!!) // Пользуйтесь и процветайте !!!
 

Попробуйте это:

//+------------------------------------------------------------------+
//| CandleInformer.mq4 |
//| Copyright © 2012, StockProgrammer |
//| StockProgrammer@mail.ru |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2012, StockProgrammer"
#property link "StockProgrammer@mail.ru"
//#property show_inputs

#property indicator_chart_window

extern int signal = 120;        // Ширина свечи для сигнала

int start()
{
        static datetime signal_time = 0;
        if( (High[0]-Low[0]) / Point >= signal ) 
        {
                if(Time[0] != signal_time)
                {
                        signal_time = Time[0];
                        Alert("Ширина свечи больше порога");
                }
        }

int Digits53 = Digits + (Digits+1)%2;
string
MyComm1 = "This Candle Full: " + DoubleToStr((High[0]-Low[0])*MathPow(10,Digits53), 0) + "pp",
MyComm2 = "This Candle Body: " + DoubleToStr(MathAbs(Close[0]-Open[0])*MathPow(10,Digits53), 0) + "pp";
ObjectCreate("label1", OBJ_LABEL, 0, 0, 0);
ObjectSetText("label1", MyComm1, 14, "Red", Red);
ObjectSet("label1", OBJPROP_CORNER, 0);
ObjectSet("label1", OBJPROP_XDISTANCE, 5);
ObjectSet("label1", OBJPROP_YDISTANCE, 12);

ObjectCreate("label2", OBJ_LABEL, 0, 0, 0);
ObjectSetText("label2", MyComm2, 14, "Red", Red);
ObjectSet("label2", OBJPROP_CORNER, 0);
ObjectSet("label2", OBJPROP_XDISTANCE, 5);
ObjectSet("label2", OBJPROP_YDISTANCE, 30);
MyComm1 = "Last Candle Full: " + DoubleToStr((High[1]-Low[1])*MathPow(10,Digits53), 0) + "pp";
MyComm2 = "Last Candle Body: " + DoubleToStr(MathAbs(Close[1]-Open[1])*MathPow(10,Digits53), 0) + "pp";

ObjectCreate("label3", OBJ_LABEL, 0, 0, 0);
ObjectSetText("label3", MyComm1, 14, "Red", LimeGreen);
ObjectSet("label3", OBJPROP_CORNER, 0);
ObjectSet("label3", OBJPROP_XDISTANCE, 5);
ObjectSet("label3", OBJPROP_YDISTANCE, 50);

ObjectCreate("label4", OBJ_LABEL, 0, 0, 0);
ObjectSetText("label4", MyComm2, 14, "Red", LimeGreen);
ObjectSet("label4", OBJPROP_CORNER, 0);
ObjectSet("label4", OBJPROP_XDISTANCE, 5);
ObjectSet("label4", OBJPROP_YDISTANCE, 68); 

}

int deinit()
{
ObjectDelete("label1");
ObjectDelete("label2");
ObjectDelete("label3");
ObjectDelete("label4"); 
} 
Скомпилировать у меня возможности нет, поэтому не проверял.
 

Вот рабочий проверенный вариант:

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

//| CandleInformer.mq4 |

//| Copyright © 2012, StockProgrammer |

//| StockProgrammer@mail.ru |

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

#property copyright "Copyright © 2012, StockProgrammer"

#property link "StockProgrammer@mail.ru"



#property indicator_chart_window

extern int pips = 120;

int start()

{
 if(NormalizeDouble((High[0]-Low[0])/Point,Digits)>=pips) Alert("Бар больше ",pips," пунктов"); 
 int Digits53 = Digits + (Digits+1)%2;

 string

 MyComm1 = "This Candle Full: " + DoubleToStr((High[0]-Low[0])*MathPow(10,Digits53), 0) + "pp",

 MyComm2 = "This Candle Body: " + DoubleToStr(MathAbs(Close[0]-Open[0])*MathPow(10,Digits53), 0) + "pp";


 ObjectCreate("label1", OBJ_LABEL, 0, 0, 0);

 ObjectSetText("label1", MyComm1, 14, "Red", Red);

 ObjectSet("label1", OBJPROP_CORNER, 0);

 ObjectSet("label1", OBJPROP_XDISTANCE, 5);

 ObjectSet("label1", OBJPROP_YDISTANCE, 12);



 ObjectCreate("label2", OBJ_LABEL, 0, 0, 0);

 ObjectSetText("label2", MyComm2, 14, "Red", Red);

 ObjectSet("label2", OBJPROP_CORNER, 0);

 ObjectSet("label2", OBJPROP_XDISTANCE, 5);

 ObjectSet("label2", OBJPROP_YDISTANCE, 30);



 MyComm1 = "Last Candle Full: " + DoubleToStr((High[1]-Low[1])*MathPow(10,Digits53), 0) + "pp";

 MyComm2 = "Last Candle Body: " + DoubleToStr(MathAbs(Close[1]-Open[1])*MathPow(10,Digits53), 0) + "pp";



 ObjectCreate("label3", OBJ_LABEL, 0, 0, 0);

 ObjectSetText("label3", MyComm1, 14, "Red", LimeGreen);

 ObjectSet("label3", OBJPROP_CORNER, 0);

 ObjectSet("label3", OBJPROP_XDISTANCE, 5);

 ObjectSet("label3", OBJPROP_YDISTANCE, 50);



 ObjectCreate("label4", OBJ_LABEL, 0, 0, 0);

 ObjectSetText("label4", MyComm2, 14, "Red", LimeGreen);

 ObjectSet("label4", OBJPROP_CORNER, 0);

 ObjectSet("label4", OBJPROP_XDISTANCE, 5);

 ObjectSet("label4", OBJPROP_YDISTANCE, 68); 






}



int deinit()

{

 ObjectDelete("label1");

 ObjectDelete("label2");

 ObjectDelete("label3");

 ObjectDelete("label4"); 

}
 

И Вам огромное спасибо!!) после компиляции выводит ошибку:

'}' - Semicolon expected (23;17)

пробовал эту скобку убирать ->

'(' - function definition unexpected (58;11)

 
proadmin:

И Вам огромное спасибо!!) после компиляции выводит ошибку:

'}' - Semicolon expected (23;17)

пробовал эту скобку убирать ->

'(' - function definition unexpected (58;11)


Скопируйте код аккуртано и полностью. Наверно упустили первую или последнюю строчку.