Разработчикам.
Предложение.
На рынке появляется много идей по построению индикаторов, основанных ТОЛЬКО на цене (уровнях).
Большим преимуществом вашего продукта было бы предоставление возможности стороить такие индикаторы, например, в специальных областях справа или/и слева от графиков.
Предложение.
На рынке появляется много идей по построению индикаторов, основанных ТОЛЬКО на цене (уровнях).
Большим преимуществом вашего продукта было бы предоставление возможности стороить такие индикаторы, например, в специальных областях справа или/и слева от графиков.
Предложение не утратило своей актуальности.
К сожалению, пока (и неизвестно когда вернемся к этому вопросу) такого не будет.
Вот, например, индикатор, не зависящий от времени. Можно в коде покрутить по вкусу положение гистограммы.
//+------------------------------------------------------------------+ //| Level Sensor.mq4 | //| Copyright © 2005, Sfen. | //+------------------------------------------------------------------+ #property copyright "Copyright © 2005, Sfen" #property indicator_chart_window //---- input parameters extern int MAX_HISTORY=500; extern int STEP = 1; int init() { return(0); } double CSH(int shift) { return (MathMax(Open[shift],Close[shift])); } double CSL(int shift) { return (MathMin(Open[shift],Close[shift])); } string OBJECT_PREFIX = "LEVELS"; int ObjectId = 0; string IntToStr(int X) { return (DoubleToStr(X,0)); } string ObGetUniqueName(string Prefix) { ObjectId++; return (Prefix+" "+IntToStr(ObjectId)); } void ObDeleteObjectsByPrefix(string Prefix) { int L = StringLen(Prefix); int i=0; while (i<ObjectsTotal()) { string ObjName = ObjectName(i); if (StringSubstr(ObjName,0,L)!=Prefix) { i++; continue;} ObjectDelete(ObjName); } } int deinit() { ObDeleteObjectsByPrefix(OBJECT_PREFIX); return(0); } int start() { string S; ObDeleteObjectsByPrefix(OBJECT_PREFIX); double HH = 0; double LL = 1000000; int History = MathMin(Bars,MAX_HISTORY); int i, j, k; for (i=1; i<History; i++) { HH = MathMax(HH,CSH(i)); LL = MathMin(LL,CSL(i)); } int NumberOfPoints = (HH-LL)/(1.0*Point*STEP)+1; int Count[]; ArrayResize(Count,NumberOfPoints); for (i=0; i<NumberOfPoints; i++) Count[i]=0; for (i=1; i<History; i++) { double C = CSL(i); while (C<CSH(i)) { int Index = (C-LL)/(1.0*Point*STEP); Count[Index]++; C += 1.0*Point*STEP; } } for (i=0; i<NumberOfPoints; i++) { double StartX = Time[5]; double StartY = LL + 1.0*Point*STEP*i; double EndX = Time[5+Count[i]]; double EndY = StartY; string ObjName = ObGetUniqueName(OBJECT_PREFIX); ObjectDelete(ObjName); ObjectCreate(ObjName,OBJ_TREND,0,StartX,StartY,EndX,EndY); ObjectSet(ObjName,OBJPROP_RAY,0); ObjectSet(ObjName,OBJPROP_COLOR,Red); } return(0); } //+------------------------------------------------------------------+
Прикольно, Sfen :) Спасибо.
Sfen, посмотри "Индикатор профайла рынка."
Тот же индикатор (только не поперек чарта).
Там алгоритм расчета гистограммы получше (можно использовать).
Тот же индикатор (только не поперек чарта).
Там алгоритм расчета гистограммы получше (можно использовать).
Mak, угу - я в основном постил как пример индикатора, который чертит поперек графика.
![MQL5 - Язык торговых стратегий для клиентского терминала MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Предложение.
На рынке появляется много идей по построению индикаторов, основанных ТОЛЬКО на цене (уровнях).
Большим преимуществом вашего продукта было бы предоставление возможности стороить такие индикаторы, например, в специальных областях справа или/и слева от графиков.