Вот удобный скрипт, который я постоянно использую. Он рисует контрольные линии каждые 10 пунктов, чтобы помочь мне определить движение на рынке. Я был очень расстроен, пытаясь понять это, глядя на цены в правой части экрана, поэтому я создал скрипт. Этот сценарий может быть полезен для начинающих, чтобы попрактиковаться в рисовании объектов.
Сделайте его CI, а не скриптом, рассчитывайте от 0, а не от цены закрытия, рисуйте только на видимой части графика (WinPriceMax() и его сестра), обновляйте его, когда цена выходит за пределы лимита (в вашем случае интервал между линиями = 10 пунктов), используйте OBJ_RECTANGLE вместо OBJ_HLINE.
Это будет синхронизироваться на всех открытых графиках.
:D
Или ... сделать его в индикатор ... нужно немного больше кода, чтобы он обновлялся только в начале нового бара ....
int deinit() { for (int ix = 0; ix < nLines; ix++) // delete my horizontal lines { ObjectDelete("tensLines"+ix); } return(0); } int start() { int nLines = 40; // Number of total line to draw double lineInterval = 0.0010; // Interval between lines double normPrice = NormalizeDouble(Close[1],3); // Current price is rounded to nearest "10" for (int ix = 0; ix < nLines; ix++) // Loop span number of times { if(ObjectFind("tensLines"+ix) < 0) ObjectCreate("tensLines"+ix, OBJ_HLINE, 0, 0, normPrice+((ix-(nLines/2))*lineInterval)); // Place half above and half below the current price else ObjectSet("tensLines"+ix, OBJPROP_PRICE1, normPrice+((ix-(nLines/2))*lineInterval)); ObjectSet("tensLines"+ix,OBJPROP_COLOR,DarkSlateGray); // Make the lines look better } return(0); //All done }
Сделайте его CI, а не скриптом, рассчитывайте от 0, а не от цены закрытия, рисуйте только на видимой части графика (WinPriceMax() и его сестра), обновляйте его, когда цена выходит за пределы лимита (в вашем случае интервал между линиями = 10 пунктов), используйте OBJ_RECTANGLE вместо OBJ_HLINE.
Это будет синхронизироваться на всех открытых графиках.
:D
Все это имеет смысл, кроме части "OBJ_RECTANGLEвместо OBJ_HLINE". Почему прямоугольники?
Или ... сделать его в индикатор ... нужно немного больше кода, чтобы он обновлялся только в начале нового бара ....
Да, конечно, так гораздо лучше. Скажите, есть ли возможность использовать что-то вроде "подстановочного знака" для таких вещей, как ObjectDelete? Я хотел бы сделать что-то вроде этого, ObjectDelete("tensLines "*); другими словами, удалить все, что начинается с "tensLines".
Все это имеет смысл, кроме части "OBJ_RECTANGLEвместо OBJ_HLINE". Почему прямоугольники?
У меня эта штука с сеткой уже много лет, я все равно никогда не вижу цены справа, возможно, вам не нравится прямоугольник, используйте WindowsBarsPerChart() и, возможно, WindowsFirstVisibleBar().
Посмотрите в правом нижнем углу графика, это 25/341. Это означает, что сетка составляет 25 пунктов, а высота графика - 341 пункт.
:D
У меня эта сетчатая штука уже много лет, я все равно никогда не вижу цены справа, возможно, вам не нравится прямоугольник, используйте WindowsBarsPerChart() и, возможно, WindowsFirstVisibleBar().
Посмотрите в правом нижнем углу графика, это 25/341. Это означает, что сетка составляет 25 пунктов, а высота графика - 341 пункт.
:D
Мне вообще-то нравится, как ты расположил это с полосками. Это легко для глаз. Вы говорите: "Вы все равно никогда не видите цены справа". Я часто задумывался, почему при наличии всего двух вариантов, купить или продать, у меня есть шанс 50 на 50, но я ошибаюсь в 80% случаев. ;-)
То же самое здесь ...
:D
Мне нравится, как вы расположили решетку. Это легко для глаз. Вы говорите: "Вы все равно никогда не видите цены с правой стороны". Я часто задумывался, почему при наличии всего двух вариантов, купить или продать, у меня есть шансы 50 на 50, но я ошибаюсь в 80% случаев. ;-)
onewithzachy, я как раз занялся настройкой вашейдиаграммы в стиле OBJ_RECTANGLE.Вы упомянули "WindowsBarsPerChart() и, возможно, WindowsFirstVisibleBar()". Я все еще не могу понять, как сделать так, чтобы бары шли от левой стороны экрана к правой. Но мне нравится макет! Есть подсказки, как это сделать?
Привет, MisterDog,
Все просто.
1. Получите временное расстояние между одним баром и другим. Мы можем получить его, вычитая время текущего бара из времени предыдущего бара или умножая период на 60 секунд, выбирайте последнее, потому что в понедельник будет временной разрыв.
datetime Bar_Time_Gap; // or integer type Bar_Time_Gap = Time [0] - Time [1]; // or Time [7] - Time [8] or whatever Bar_Time_Gap = Period()*60;
2. WindowsFirstVisibleBar() - это самый левый бар. Начните рисовать с этого бара, или, что еще лучше, начните рисовать слева от этого бара, скажем, на 5 баров левее. Допустим, возврат WindowsFirstVisibleBar() равен 20. Это означает, что самый левый бар - бар [20], начинайте рисовать с бара [25]. На самом деле я рисую от [Bars - 1].
datetime Start; Start = Time [WindowFirstVisibleBar() + 5]; //which is the same ... Start = Time [WindowFirstVisibleBar()] - 5 * Bar_Time_Gap; //... with this one
3. WindowsBarsPerChart() - это количество баров на графике . Скажем, возвратWindowsBarsPerChart() равен 35, а WindowsFirstVisibleBar() - 20. Таким образом, начиная с бара [0], справа остается около 15 баров пустого пространства. Нарисуйте конец прямоугольника до самого правого бара этого пустого пространства, или, что еще лучше, начните рисовать от правого бара, скажем, на 5 баров в право.
datetime End; int Right_Bar = WindowBarsPerChart() - WindowFirstVisibleBar() + 5; End = Time[0] + Right_Bar * Bar_Time_Gap;
Когда появится новый бар, этот правый бар будет перемещаться влево, поэтому конец прямоугольника будет виден, и нам придется рисовать его снова.
Надеюсь, я не делаю ошибок, потому что я написал это быстро.
:D
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
Вот удобный скрипт, который я постоянно использую. Он рисует контрольные линии каждые 10 пунктов, чтобы помочь мне определить движение на рынке. Я был очень расстроен, пытаясь понять это, глядя на цены в правой части экрана, поэтому я создал скрипт. Этот сценарий может быть полезен для начинающих, чтобы попрактиковаться в рисовании объектов.