Помогите пожалуйста с вычислением переменной от изменения цены

 
Уважаемые господа програмисты и все кто понимает в MQL4 . большая просьба у меня к Вам. стал сам разбираться в написании индикаторов, но пока слишком слаб чтоб даже элементарное понять. я не использую советников или сложных индикаторов, но мне нужно посчитать переменную зависящую от изменения цены при каждом тике и отрисовать её ну ввиде столбца в отдельном окне, с началом от нуля (в начале бара) и возможностью положительных и отрицательных значений как в MACD но только с условием обнуления в начале бара , как класический обьём ...я так понял это гистограмма...принцип такой когда цена больше предидущей то переменная S увеличивается( по алгоритму) а если цена уменьшилась то S уменьшилась...

Буду благодарен за помощь.
 
S должна меняться с каждым тиком (прибавляться к 0 или вычитаться) на 0-м баре, так???
 
да именно так, для меня сложно понять откуда взять изменение цены ( просто не знаю как это делается)а так же как привязать к изменению этой самой S высоту столбцов( если можно то не только целые числа, можно до 4 знаков после запятой...хотя я не знаю какие ограничения в программе...так же в идеале можно окрасить столбцы типа вверх зелёный, вниз красный...
 
Да уж...вот так с просьбой к Светилам MQL обращаешься , а они игнорируют. ..уверен что для тех кто здесь постоянно выкладывает коды и обсуждает чужие, было бы плёвым делом обьяснить мне принцип, я не тупой. ..просто программированием не занимался никогда. а ещё лучше наглядно примером показать как это делаеться или ссылку дать. ..я бы научился и сам основам програминга было бы по чём учиться. ..учебников нема.

Всем кто поможет заранее благодарен.
 
Надеюсь это то что вы хотели



//+------------------------------------------------------------------+
//|                                                    SpeedTick.mq4 |
//|                                           Copyright © 2006, XEON |
//|                                                       xeon@nm.ru |
//+------------------------------------------------------------------+
 
#property copyright "Copyright © 2006, XEON"
#property link      "xeon@nm.ru"
//Индикатор наростания движения цен за промежуток времени
#property indicator_separate_window
#property indicator_buffers 2
#property indicator_color1 Lime
#property indicator_color2 Red
//---- indicator buffers
double     BUYBuffer[];
double     SELLBuffer[];
//------------------------------
int        NewBar;
double     OldBid, NewBid;
int        BUYTick, SELLTick;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int init()
  {
   SetIndexStyle(0,DRAW_HISTOGRAM,0);
   SetIndexBuffer(0,BUYBuffer);
   SetIndexStyle(1,DRAW_HISTOGRAM,0);
   SetIndexBuffer(1,SELLBuffer);
   return(0);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int start()
  {
    OldBid = NewBid;
    NewBid = Bid;
    
    if(NewBid>OldBid){BUYTick++;}
    else if(NewBid<OldBid){SELLTick++;}
    else {BUYBuffer[0]=0; SELLBuffer[0]=0;}
    BUYBuffer[0] =BUYTick;
    SELLBuffer[0]=-SELLTick;
    if(NewBar!=Bars){
       NewBar=Bars;
       BUYTick  = 0;
       SELLTick = 0;
    }
   
//----
   return(0);
  }
Файлы:
speedtick.mq4  2 kb
 
Вот посмотри, то или нет...
Файлы:
 
Спасибо Вам огромное, сейчас посмотрю подробно и отпишусь...но в любом случае спасибо.
 
Для xeon

Спасибо за помощь...правда есть две неточности, одна главная то что столбцы появляются только с новым приходом цены и не сохраняется на графике, а это очень обидно...а второе думаю исправляется наверное проще но как я так и не понял, столбец один ( переменная одна и она либо положительная, либо отрицательная ,либо=0)
грубо говоря S = S+1 при цене вверх и S = S-1 при цене вниз. но S -это одна и та же...Спасибо огромное ещё раз за помощь...если вдруг Вас не затруднит, то буду рад изменённой версии, сам с буферами никак не разберусь.




 
sashken

Спасибо Вам за Вашу версию...она более похожа на то что мне нужно. ..вот только бы ввести туда переменные которые я бы понял. чтоб их использовать в дальнейших вычислениях и вывести отдельно переменную S - значение которой и будут присваиваться высоте столбца... буду очень признателен.
 
Lord_Shadows:
sashken

Спасибо Вам за Вашу версию...она более похожа на то что мне нужно. ..вот только бы ввести туда переменные которые я бы понял. чтоб их использовать в дальнейших вычислениях и вывести отдельно переменную S - значение которой и будут присваиваться высоте столбца... буду очень признателен.

Ни чё не понял:) Вот посмотри что вышло...
Файлы:
 
Для sashken

Слушай...спасибо ещё раз извени за заморочки..наверное проще выложить описание...


пример:начало цикла , оно же начало бара : S=0 теперь переходим дальше. простая переменная H=0 , если цена настоящая больше предидущей , то a = разница цен(настоящая - предидущая),тогда H=H+a , если H=1 то S = S+1 , если H>1 то S=S+2 и обнуляем a=0( отдельно замечу что Н растёт до тех пор пока не изменяется цена вниз) ...если цена падает то S выходит из цикла и присваивается высоте столбца и то же самое при цене вниз .


буду рад очень, если тебя не затруднит сделать именно это...и кстати тут можно где-нибудь в личке общаться...

Причина обращения: