Вопросы от начинающих MQL5 MT5 MetaTrader 5 - страница 716
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
Здрассьти ... Как это нельзя?
А это что тогда? Пять минут в редакторе...
Прекрасно!
Команда?
...
start()
{
........
j=j+10;
PlotIndexSetInteger(0,PLOT_SHIFT,j);
........
СПАСИБО!
В общем так.
Смещение линии в окне индикатора вправо, за нулевой бар, действительно работает на платформе МТ5.
МТ4 не имеет такой возможности, не получилось, чтобы я не делал.
Также МТ5 насколько я знаю имеет возможность 3D-моделирования в отличии от МТ4.
Это всё очень круто!
Я сломался.
Перехожу на МТ5!!! // причем, срочно ;)
Что невозможно? Сдвигать буфер индикатора вправо? Ещё как можно, хоть вправо, хоть влево ;) SetIndexShift().
Но раз решили на МТ5 переходить, флаг в руки ;)
Прекрасно!
Команда?
...
start()
{
........
j=j+10;
PlotIndexSetInteger(0,PLOT_SHIFT,j);
........
Тупо перевернул десять последних значений расчётного буфера и вывел со сдвигом в 10 баров. Даже не думал ни о какой оптимизации и прочем. Просто чтобы показать:
//| iCheckShift.mq4 |
//| Copyright 2017, Artem A. Trishkin, Skype artmedia70 |
//| https://login.mql5.com/ru/users/artmedia70 |
//+------------------------------------------------------------------+
#property copyright "Copyright 2016, Artem A. Trishkin, Skype artmedia70"
#property link "https://login.mql5.com/ru/users/artmedia70"
#property version "1.00"
#property strict
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_plots 2
//--- plot BufferCurrent
#property indicator_label1 "BufferCurrent"
#property indicator_type1 DRAW_LINE
#property indicator_color1 clrRed
#property indicator_style1 STYLE_SOLID
#property indicator_width1 1
//--- plot BufferFuture
#property indicator_label2 "BufferFuture"
#property indicator_type2 DRAW_LINE
#property indicator_color2 clrDodgerBlue
#property indicator_style2 STYLE_SOLID
#property indicator_width2 2
//--- input parameters
input int Shift=10; // Смещение в будущее (баров)
//--- indicator buffers
double BufferCurrent[];
double BufferFuture[];
double BufferCalculate[];
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//--- indicator buffers mapping
IndicatorBuffers(3);
SetIndexBuffer(0,BufferCurrent,INDICATOR_DATA);
SetIndexBuffer(1,BufferFuture,INDICATOR_DATA);
SetIndexBuffer(2,BufferCalculate,INDICATOR_CALCULATIONS);
SetIndexShift(1,Shift);
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
const int prev_calculated,
const datetime &time[],
const double &open[],
const double &high[],
const double &low[],
const double &close[],
const long &tick_volume[],
const long &volume[],
const int &spread[])
{
//---
if(rates_total<1) return(0);
ArraySetAsSeries(BufferCalculate,true);
ArraySetAsSeries(BufferCurrent,true);
ArraySetAsSeries(BufferFuture,true);
int limit=rates_total-prev_calculated;
if(limit>1) {
limit=rates_total-1;
ArrayInitialize(BufferCalculate,EMPTY_VALUE);
ArrayInitialize(BufferCurrent,EMPTY_VALUE);
ArrayInitialize(BufferFuture,EMPTY_VALUE);
}
for(int i=limit; i>=0; i--) {
BufferCurrent[i]=(high[i]+low[i])/2.0;
if(i<Shift) BufferCalculate[i]=(high[i]+low[i]+open[i]+close[i])/4.0;
}
for(int i=0; i<Shift; i++) {
BufferFuture[Shift-i]=BufferCalculate[i];
}
//--- return value of prev_calculated for next call
return(rates_total);
}
//+------------------------------------------------------------------+
Что невозможно? Сдвигать буфер индикатора вправо? Ещё как можно, хоть вправо, хоть влево ;)
Но раз решили на МТ5 переходить, флаг в руки ;)
свой код выше написал. Так?
Я там добавил. SetIndexShift(). Да и Артём более развёрнуто написал.
Ну наконец то! Проблема решена.
...
start()
{
........
j=j+10;
SetIndexShift(0,j);
Всё работает и на МТ4
ВСЕМ ОГРОМНОЕ СПАСИБО!!!
Вопрос у меня такой:
Есть MACD в индикаторном окне, которое имеет некое значение "А", вычисленное на текущей цене. Какая должна быть формула вычисляющая значение цены, если бы текущее значение MACD стало бы "-А" ?
Здравствуйте !
Вопрос у меня такой:
Есть MACD в индикаторном окне, которое имеет некое значение "А", вычисленное на текущей цене. Какая должна быть формула вычисляющая значение цены, если бы текущее значение MACD стало бы "-А" ?
https://ru.wikipedia.org/wiki/%D0%98%D0%BD%D0%B4%D0%B8%D0%BA%D0%B0%D1%82%D0%BE%D1%80_MACD
Есть MACD в индикаторном окне, которое имеет некое значение "А", вычисленное на текущей цене. Какая должна быть формула вычисляющая значение цены, если бы текущее значение MACD стало бы "-А" ?
Ренат, спасибо конечно же, за участие.... Но, вопрос был о другом:
Есть MACD в индикаторном окне, которое имеет некое значение "А", вычисленное на текущей цене. Какая должна быть формула вычисляющая значение цены, если бы текущее значение MACD стало бы "-А" ?