Нужна помощь... подскажите как нарисовать горизонтальную линию
определенной длины и на определенном уровне...
'PeriodBarsHIGH PeriodBarsLOW'
рисуем уровни HIGH LOW недели!
// // YURAZ // отображаем уровни недели // Init = 0 первоночальная инициализация // tDay - любой день недели вызовет отображение уровней этой недели // void GrafRSWeek(int Init, datetime tDay) { static double LowWeek; static double HigWeek; HigWeek = PeriodBarsHIGH(Понедельник(tDay), Пятница(tDay)); LowWeek = PeriodBarsLOW(Понедельник(tDay), Пятница(tDay)); string sHigWeek = "HigW|"+Symbol()+"|"+TimeToStr(tDay,TIME_DATE)+"|"; string sLowWeek = "LowW|"+Symbol()+"|"+TimeToStr(tDay,TIME_DATE)+"|"; if ( Init == 0 || Init == 2) { if ( ObjectFind(sHigWeek) == -1 ) { ObjectCreate(sHigWeek, OBJ_TREND, 0, Понедельник(tDay) , HigWeek, Пятница(tDay) , HigWeek, 0, 0); ObjectSet(sHigWeek, OBJPROP_RAY, false); ObjectSet(sHigWeek, OBJPROP_COLOR, LimeGreen); } if ( ObjectFind(sLowWeek) == -1 ) { ObjectCreate(sLowWeek, OBJ_TREND, 0, Понедельник(tDay) , LowWeek, Пятница(tDay) , LowWeek, 0, 0); ObjectSet(sLowWeek, OBJPROP_RAY, false); ObjectSet(sLowWeek, OBJPROP_COLOR, Yellow); } } ObjectSet( sHigWeek, OBJPROP_TIME1, Понедельник(tDay) ); ObjectSet( sHigWeek, OBJPROP_TIME2, Пятница(tDay) ); ObjectSet( sHigWeek, OBJPROP_PRICE1, HigWeek ); ObjectSet( sHigWeek, OBJPROP_PRICE2, HigWeek ); ObjectSet( sLowWeek, OBJPROP_TIME1, Понедельник(tDay) ); ObjectSet( sLowWeek, OBJPROP_TIME2, Пятница(tDay) ); ObjectSet( sLowWeek, OBJPROP_PRICE1, LowWeek ); ObjectSet( sLowWeek, OBJPROP_PRICE2, LowWeek ); } // YURAZ // // datetime Понедельник(datetime mDay) { if ( TimeDayOfWeek( mDay ) == 2 ) mDay = mDay - 86400; if ( TimeDayOfWeek( mDay ) == 3 ) mDay = mDay - 172800; if ( TimeDayOfWeek( mDay ) == 4 ) mDay = mDay - 259200; if ( TimeDayOfWeek( mDay ) == 5 ) mDay = mDay - 345600; return( StrToTime(TimeToStr(mDay,TIME_DATE)+" 00:00:00")); } // // // datetime Пятница(datetime mDay) { if ( TimeDayOfWeek( mDay ) == 4 ) mDay = mDay + 86400 ; if ( TimeDayOfWeek( mDay ) == 3 ) mDay = mDay + 172800; if ( TimeDayOfWeek( mDay ) == 2 ) mDay = mDay + 259200 ; if ( TimeDayOfWeek( mDay ) == 1 ) mDay = mDay + 345600 ; return( StrToTime(TimeToStr(mDay,TIME_DATE)+" 23:59:59")); }
если же ничего не понятно
тогда почитайте описание ObjectCreate ObjectSet ObjectFind
или просто так
//ltDatCurBeg = дата начала дня //ltDatCurBeg = дата конца дня //HighDay = HIGH дня //LowDay = LOW дня //PeriodBarsHIGH PeriodBarsLOW - можно взять по ссылке double HighDay = PeriodBarsHIGH(ltDatCurBeg , ltDatCurEnd ); // уровни дня double LowDay = PeriodBarsLOW(ltDatCurBeg , ltDatCurEnd ); string lNOHD = oNameHIGHDay + Symbol()+lsDay; string lNOLD = oNameLOWDay + Symbol()+lsDay; CreateObject( lNOHD, OBJ_TREND, ltDatCurBeg, HighDay,ltDatCurEnd ,HighDay ) ; // обьект максимума дня ObjectSet(lNOHD, OBJPROP_COLOR , lColorDayH); ObjectSet(lNOHD, OBJPROP_RAY , false); ObjectSet(lNOHD, OBJPROP_BACK, true); CreateObject( lNOLD, OBJ_TREND, ltDatCurBeg, LowDay, ltDatCurEnd ,LowDay ) ; // обьект минимум дня ObjectSet(lNOLD, OBJPROP_COLOR , lColorDayL); ObjectSet(lNOLD, OBJPROP_RAY , false); ObjectSet(lNOLD, OBJPROP_BACK, true);
немного честно говоря для меня сложным оказалось, я начинаю
только писать на этом языке...
при известном уровне цен на котором необходимо нарисовать прямую, как это сделать?
В описании ObjectCreate ObjectSet все в принципе понятно, а не могу догнать какими переменными объявляются сами линни которые я изначально указал при создании индикатора... я их даже в теле индикатора не вижу (точнее то чтобы указывало на них)...)))) глупо наверное, но ......
как их обозначить? параметры задать уже конечно легче
при известном уровне цен на котором необходимо нарисовать прямую, как это сделать?
В описании ObjectCreate ObjectSet все в принципе понятно, а не могу догнать какими переменными объявляются сами линни которые я изначально указал при создании индикатора... я их даже в теле индикатора не вижу (точнее то чтобы указывало на них)...)))) глупо наверное, но ......
как их обозначить? параметры задать уже конечно легче
rash_dag:
немного честно говоря для меня сложным оказалось, я начинаю только писать на этом языке...
при известном уровне цен на котором необходимо нарисовать прямую, как это сделать?
В описании ObjectCreate ObjectSet все в принципе понятно, а не могу догнать какими переменными объявляются сами линни которые я изначально указал при создании индикатора... я их даже в теле индикатора не вижу (точнее то чтобы указывало на них)...)))) глупо наверное, но ......
как их обозначить? параметры задать уже конечно легче
немного честно говоря для меня сложным оказалось, я начинаю только писать на этом языке...
при известном уровне цен на котором необходимо нарисовать прямую, как это сделать?
В описании ObjectCreate ObjectSet все в принципе понятно, а не могу догнать какими переменными объявляются сами линни которые я изначально указал при создании индикатора... я их даже в теле индикатора не вижу (точнее то чтобы указывало на них)...)))) глупо наверное, но ......
как их обозначить? параметры задать уже конечно легче
запустите в тестере этот код
//+------------------------------------------------------------------+ //| 111.mq4 | //| YURAZ Copyright © 2007 | //| www.mail.ru yzh@mail.ru | //+------------------------------------------------------------------+ #property copyright "YURAZ Copyright © 2007" #property link "www.mail.ru yzh@mail.ru" //+------------------------------------------------------------------+ //| expert initialization function | //+------------------------------------------------------------------+ int init() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert deinitialization function | //+------------------------------------------------------------------+ int deinit() { //---- //---- return(0); } //+------------------------------------------------------------------+ //| expert start function | //+------------------------------------------------------------------+ int start() { //---- datetime ltDatCurBeg ; datetime ltDatCurEnd ; ltDatCurBeg = StrToTime( "2007.09.01 00:00") ; ltDatCurEnd = StrToTime( "2007.09.17 00:00") ; string lNOHD = iHigh(Symbol(),PERIOD_D1,0)+ Symbol(); double HighDay = iHigh(Symbol(),PERIOD_D1,0); ObjectCreate( lNOHD, OBJ_TREND, 0, ltDatCurBeg, HighDay,ltDatCurEnd ,HighDay ) ; // обьект максимума дня ObjectSet(lNOHD, OBJPROP_COLOR , Yellow); ObjectSet(lNOHD, OBJPROP_RAY , false); ObjectSet(lNOHD, OBJPROP_BACK, true); //---- return(0); } //+------------------------------------------------------------------+
Спасибо огромное, все получилось, и предыдущее тоже догнал))))
А подскажите можно ли на графике цены отобразить ордер в виде отрезка начинающегося в точке его открытия (время и цена) и заканчивающаяся в точке цены (если ордер не закрыт) или в точке закрытия ордера.
тогда наглядно бы можно посмотреть все сделки.
тогда наглядно бы можно посмотреть все сделки.
Огромное спасибо.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь