Fox_RM:
Пишу индикатор, который считает количество пунктов вверх и вниз прошедших ценой за один тик.
Что не так в коде и где ошибка, подскажите плиз!
Заранее спасибо!
Файлы:
tiktakwav.mq4
3 kb
Наткнулся на несколько сообщений на форуме с просьбой выложить индикаторы-счетчики баров, пунктов, тиков.
Доработал свои, выкладываю. Уверен кому нибудь пригодятся.
Файлы:
shetchik_pips.mq4
3 kb
Тему переименуйте. Как то не вяжется "Помогите с кодом" и выкладывание своего творчества, которое кому-то может и пригодится
Vinin:
Тему переименуйте. Как то не вяжется "Помогите с кодом" и выкладывание своего творчества, которое кому-то может и пригодится
Тему переименуйте. Как то не вяжется "Помогите с кодом" и выкладывание своего творчества, которое кому-то может и пригодится
Сделано. Это старая осталась)
Fox_RM:
Пишу индикатор, который считает количество пунктов вверх и вниз прошедших ценой за один тик.
Что не так в коде и где ошибка, подскажите плиз!
Заранее спасибо!
У тебя нет // в коментах, в них стоят одинарные кавычки вместо //
ПРИВЕ БРАТУХА ВПЕРЕД НА АМБРАЗРУ
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Пишу индикатор, который считает количество пунктов вверх и вниз прошедших ценой за один тик.
Что не так в коде и где ошибка, подскажите плиз!
#property indicator_chart_window extern int LimitBar = 10; extern int cegl = 6; extern string Shrift = "Arial Black"; extern bool delete = true; double old_price, max_price, sum_pip_sell, sum_pip_bay, new_pip_bay, new_pip_sell, old_pip_bay, old_pip_sell; datetime ctat_SB =0; int init() {return(0);} int deinit() { if (delete == true) { GetDellName(); } ObjectsDeleteAll(0, OBJ_TREND); return(0); } int start() { double price; string name_4,name_b; int i=0; int limit, pip; double delta; int counted_bars=IndicatorCounted(); if(counted_bars<0) return(-1); if(counted_bars>0) counted_bars--; limit=Bars-counted_bars; if(ctat_SB==0) ctat_SB=Time[0]; if(limit>0) limit=0; for(i=limit; i>=0; i--) { if(old_price==0) old_price=Close[i]; if(iBarShift(NULL,0,ctat_SB)-iBarShift(NULL,0,Time[i])>=LimitBar) { ' счетчик баров для LimitBar sum_pip_sell =0; sum_pip_bay = 0; new_pip_bay = 0; new_pip_sell = 0; old_pip_bay = 0; old_pip_sell = 0; } price = Close[i]; if(price > max_price) max_price=price; delta = price - old_price; ' разница пунктов pip = delta*10000; ' округляем до целого //---- Каунт плюс if(delta>=0) { ' условие для ап пунктов new_pip_bay = pip; sum_pip_bay = old_pip_bay+new_pip_bay; old_pip_bay = sum_pip_bay; } //---- Каунт минус if(delta<0) { ' условие для даун пунктов new_pip_sell = MathAbs(pip); sum_pip_sell = old_pip_sell+new_pip_sell; old_pip_sell = sum_pip_sell; } //---- old_price=price; //---- размещаем счетчик на графике name_4 = "TPM_ 4 "+TimeToStr(ctat_SB); SetText(name_4+"sell",DoubleToStr(sum_pip_sell,0),ctat_SB+60*Period()*2, max_price+(Ask-Bid)*6, Blue,12); SetText(name_4+"bay",DoubleToStr(sum_pip_bay,0),ctat_SB-60*Period()*2, max_price+(Ask-Bid)*4.5, Red,12); } return(0); } void SetText(string name,string text,datetime t1, double p1, color c, int size) // --- отображение текста { if (ObjectFind(name)!=-1) ObjectDelete(name); ObjectCreate(name,OBJ_TEXT,0,0,0,0,0); ObjectSet(name, OBJPROP_TIME1 , t1); ObjectSet(name, OBJPROP_PRICE1, p1); ObjectSetText(name,text,cegl,Shrift,c); } //+------------------------------------------------------------+ void GetDellName (string name_n = "TPM_ ") // -- удаление меток с графика { string vName; for(int i=ObjectsTotal()-1; i>=0;i--) { vName = ObjectName(i); if (StringFind(vName,name_n) !=-1) ObjectDelete(vName); } } //----Заранее спасибо!