[ВНИМАНИЕ, ТЕМА ЗАКРЫТА!] Любой вопрос новичка, чтоб не захламлять форум. Профи, не проходите мимо. Без вас никуда. - страница 777

 
RekkeR:
Есть несколько горизонтальных линий, нужно определить кво пунктов между ними в разных сочетаниях, в принципе на данном этапе меня вполне устроит определение между двумя линиями, остальное сделаю руками. Может есть готовый скрипт или индикатор такой? Спасибо за отклик.

Профессионально не программирую,- потому - был бы рад помочь, но ...

 
RekkeR

Есть несколько горизонтальных линий, нужно определить кво пунктов между ними в разных сочетаниях, в принципе на данном этапе меня вполне устроит определение между двумя линиями, остальное сделаю руками. Может есть готовый скрипт или индикатор такой? Спасибо за отклик. 

Я дам Вам уже готовый код, раз он так Вам нужен. Тут нет ни чего сложного.

//+------------------------------------------------------------------+
//| script program start function                                    |
//+------------------------------------------------------------------+
int start()
{ 
  
  /*
        Скрипт
  ========== Lines_RASST ========

Является дополнением к скрипту Lines_Create. (Скрипт Lines_Create создаёт на графике 2 горизонтальные линии с именами UP_LEVEL и DOWN_LEVEL)

Скрипт Lines_RASST выводит на экран сообщение о том, сколько пунктов расстояние между двумя горизонтальными линиями
    у которых миена UP_LEVEL и DOWN_LEVEL.
    В силу того, что скрипт Lines_RASST имеет задержку в коде, надо не просто кинуть его на график, или не просто сделать
    по скрипту двойной клик, надо ещё сразу сделать дополнительный одинарный клик левой кнопкой мыши по окну графика.
    Только в этом случае надпись, говорящая о расстоянии появится и через 5 секунд исчезнет сама.
    Если скрипт Lines_RASST вызван, а дополнительный клик по окну не сделан, то по прошествии 5 секунд скрипт выгрузится из оперативной
    памяти, и Вы ни чего на экране не увидите, ни какой надписи (почему так сделан терминал я не знаю).


  */
  
  bool fm;
   // --------------- Значения цены на горизонтальных линиях ---------------------------------
  double UpLevelPrice=ObjectGet("UP_LEVEL",OBJPROP_PRICE1);
  double DownLevelPrice=ObjectGet("DOWN_LEVEL",OBJPROP_PRICE1);
// ---------------------------------------------------------------------------------------- 
 //--------- калькулятор расстояний между этими линиями ---------------
  
  int Rasst=(UpLevelPrice-DownLevelPrice)/Point;
  fm=ObjectCreate("DIAPAZON",OBJ_LABEL,0,0,0);
  if(fm==0 || fm==-1){// тут можно вывести сообщение об ошибке}
  fm=ObjectSetText("DIAPAZON","Канал = "+Rasst+" pt.",24,"Verdana",Blue); 
  if(fm==0 || fm==-1){// тут можно вывести сообщение об ошибке}
  fm=ObjectSet("DIAPAZON",OBJPROP_CORNER,0);
  if(fm==0 || fm==-1){// тут можно вывести сообщение об ошибке}
  fm=ObjectSet("DIAPAZON",OBJPROP_XDISTANCE,350);
  if(fm==0 || fm==-1){// тут можно вывести сообщение об ошибке}
  fm=ObjectSet("DIAPAZON",OBJPROP_YDISTANCE,315);
  if(fm==0 || fm==-1){// тут можно вывести сообщение об ошибке}
  // ------------------------------------------------------------------
  Sleep(5000);
  //-------- удаляем надпись с экрана -----------------------------
 fm=ObjectDelete("DIAPAZON");
 if(fm==0 || fm==-1){// тут можно вывести сообщение об ошибке}
}
 
drknn:

Неправильный он потому, что в нём строка double MyKoren(double MyValue=36){ инициализирует переменную MyValue значением = 36. Это лишено всякого смысла, так как мы в подпрограмму передаём значение = значению переменной DlyaKornya.


Это умолчание... Если функция вызвана так: double rex=(MyKoren()+1)*100+(MyKoren()+1)*10+MyKoren()+1;

ответ понятен?

 
Sorento:

Это умолчание... Если функция вызвана так: double rex=(MyKoren()+1)*100+(MyKoren()+1)*10+MyKoren()+1;

ответ понятен?


Повторюсь:

...  Инициализация переменной в ней значением = 36 видать сработает только в том случае, если вызов функции произойдёт без указания параметров.

... Всё равно лучше не использовать конструкции типа double MyKoren(double MyValue=36){, а писать как оно и положено - double MyKoren(double MyValue){, иначе потом будешь недоумевать, почему подпрограмма работает не так как нужно. 

Поймите, что при задействовании конструкции типа double MyKoren(double MyValue=36){ с последующим вызовом вроде Вашего  double rex=(MyKoren()+1)... потрерять контроль - раз плюнуть. Особенно новичку.

 
drknn:


Повторюсь:

... Инициализация переменной в ней значением = 36 видать сработает только в том случае, если вызов функции произойдёт без указания параметров.

... Всё равно лучше не использовать конструкции типа double MyKoren(double MyValue=36){, а писать как оно и положено - double MyKoren(double MyValue){, иначе потом будешь недоумевать, почему подпрограмма работает не так как нужно.

Поймите, что при задействовании конструкции типа double MyKoren(double MyValue=36){ с последующим вызовом вроде Вашего double rex=(MyKoren()+1)... потрерять контроль - раз плюнуть. Особенно новичку.

)))

зато номер странички запомнится.

Или ключ сгенерируется...

;)

Это другая ветка - я заплутал. и прошу простить.

Почту кружит. (с) АС Пушкин

[Deleted]  
drknn:
Нужно не выкладывать краденное.
С чего вы взяли что я что-то украл? Этот индикатор в свободном доступе в интернете в формате mql. При чём здесь, что нельзя выкладывать декомпелированные индюки? Я лично ничего не декомпилировал. Нашёл, понравилось, попросил сделать алерт. В чём проблема?
 

Доброе время суток... не можете подсказать как включить советника например Ilan_19 выложенного здесь ... работаю на Альпари пятизнак... установил включаю и не работает...

 
Pilligrim:

Доброе время суток... не можете подсказать как включить советника например Ilan_19 выложенного здесь ... работаю на Альпари пятизнак... установил включаю и не работает...

Не работает - понятие растяжимое... Что именно не работает, что происходит и т.д. и т.п.
 
artmedia70:
Не работает - понятие растяжимое... Что именно не работает, что происходит и т.д. и т.п.
не торгует...
[Удален]  

Pilligrim:

не торгует...

И не надо, чтобы торговал.