Boris54
ПенSионер

 
Уровень 17

  Торгую в компаниях:


Группа "Стол заказов MQL"

Рейтинг 2088



РЕКОМЕНДУЮ



Две сетки Фибо на одном терминале

Подскажите как сделать разные уровни Фибо на одном терминале.
1- Использую стандартные уровни 23, 38, 50 и 61 %.
2- На другом инструменте ( в другом окне) надо поставить уровни 0, 25, 50, 75 и 100%. Назвать к примеру Фибо2.
  • 0
  • Просмотров: 1740
  • 14 июля 2023, 04:13
  • Boris54
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

Вступите в группу "Стол заказов MQL", чтобы следить за обновлениями
ПРИСОЕДИНИТЬСЯ К ГРУППЕ
присоединиться
  Предыдущая запись в группе
советник ножи и фрактал паттерн
Следующая запись в группе  
Создание советника
13 июля 2023
14 июля 2023

Комментарии (13)

+
0
задайте уровни программно например в скрипте
avatar

  34  AM2 Сообщений: 15882 - Андрей

  • 14 июля 2023, 18:03
+
0
И вы можете сделать такой скрипт?
Согласен на скрипт:) 
Параметры: значение/уровень для 100% и для нуля %. Уровни в %: 25, 50 и 75%.
Наверное возможность менять толщину линий и цвет для 25, 50 и 75%.
**
В качестве фантазии: а скопировать текст стандартного индикатора Фибо и разместить его в оболочке для «нового» индикатора Фибо2 ??
avatar

  17  Boris54 Автор Сообщений: 756 - ПенSионер

  • 14 июля 2023, 23:24
+
0
на 18-е
avatar

  34  AM2 Сообщений: 15882 - Андрей

  • 14 июля 2023, 23:38
+
0
есть функции для установки значений уровней, но на практике это не работает. часа 2 просидел так и не сделал пользовательские уровни:


//+------------------------------------------------------------------+
//|                                                   FiboScript.mq4 |
//|                                              Copyright 2023, AM2 |
//|                                     https://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2023, AM2"
#property link      "https://www.forexsystems.biz"
#property version   "1.00"
#property strict


input double f0=0;
input double f1=25;
input double f2=50;
input double f3=75;
input double f4=100;

input string nm="f1";

//+------------------------------------------------------------------+
//| Создание объекта FIBO                                            |
//+------------------------------------------------------------------+
void PutFibo(string name)
  {
//ObjectDelete(name);
//--- создадим "Уровни Фибоначчи" по заданным координатам
   ObjectCreate(0,name,OBJ_FIBO,0,Time[1],Close[1],Time[44],Close[44]);
//--- установим цвет
   ObjectSetInteger(0,name,OBJPROP_COLOR,Red);
//--- установим толщину линии
   ObjectSetInteger(0,name,OBJPROP_WIDTH,1);
//--- установим количество уровней
   ObjectSetInteger(0,name,OBJPROP_LEVELS,5);

   ObjectSetDouble(0,name,OBJPROP_LEVELVALUE,0,Close[44]);
   ObjectSetDouble(0,name,OBJPROP_LEVELVALUE,1,Close[33]);
   ObjectSetDouble(0,name,OBJPROP_LEVELVALUE,2,Close[22]);
   ObjectSetDouble(0,name,OBJPROP_LEVELVALUE,3,Close[11]);
   ObjectSetDouble(0,name,OBJPROP_LEVELVALUE,4,Close[1]);

   ObjectSetFiboDescription(name,0,string(f0));
// ObjectSetFiboDescription(name,1,string(f1));
//ObjectSetFiboDescription(name,2,string(f2));
//ObjectSetFiboDescription(name,3,string(f3));
   ObjectSetFiboDescription(name,4,string(f4));
  }
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   PutFibo(nm);
  }
//+------------------------------------------------------------------+

avatar

  34  AM2 Сообщений: 15882 - Андрей

  • 15 июля 2023, 16:58
+
0
То есть этот набор операторов — не работает?
avatar

  17  Boris54 Автор Сообщений: 756 - ПенSионер

  • 15 июля 2023, 17:44
комментарий был удален 2023-07-16 03:02:08 Boris54

+
0
если только где то есть рабочий код или на трендовых линиях делать
avatar

  34  AM2 Сообщений: 15882 - Андрей

  • 16 июля 2023, 14:28
+
0
сделал на трендовых линиях: www.opentraders.ru/downloads/3630/

avatar

  34  AM2 Сообщений: 15882 - Андрей

  • 17 июля 2023, 19:49
+
0
Спасибо. Уровни рисует. Но пока не понял, что значит «на трендовых линиях».
Попробую разобраться, как можно использовать.
avatar

  17  Boris54 Автор Сообщений: 756 - ПенSионер

  • 18 июля 2023, 07:01
+
0
Такое решение не подойдет?

//+------------------------------------------------------------------+
//|                                                   FiboScript.mq4 |
//|                                              Copyright 2023, AM2 |
//|                                     https://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2023, AM2"
#property link      "https://www.forexsystems.biz"
#property version   "1.00"
#property strict

input double f0=0;
input double f1=25;
input double f2=50;
input double f3=75;
input double f4=100;
input string nm="FiboLevels";

double values[5];
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   values[0]=f0;
   values[1]=f1/100;
   values[2]=f2/100;
   values[3]=f3/100;
   values[4]=f4/100;   
   FiboLevelsCreate(nm);
  }
//+------------------------------------------------------------------+ 
//| Cоздает "Уровни Фибоначчи" по заданным координатам               | 
//+------------------------------------------------------------------+ 
bool FiboLevelsCreate(string name)
  {
   ObjectDelete(0,name);
   ObjectCreate(0,name,OBJ_FIBO,0,Time[1],Close[1],Time[44],Close[44]);
//--- установим цвет 
   ObjectSetInteger(0,name,OBJPROP_COLOR,clrRed); 
//--- установим стиль линии 
   ObjectSetInteger(0,name,OBJPROP_STYLE,STYLE_SOLID); 
//--- установим толщину линии 
   ObjectSetInteger(0,name,OBJPROP_WIDTH,1); 
//--- установим количество уровней 
   ObjectSetInteger(0,name,OBJPROP_LEVELS,ArraySize(values)); 
//--- установим свойства уровней в цикле 
      for(int i=0;i<ArraySize(values);i++) 
     { 
      //--- значение уровня 
      ObjectSetDouble(0,name,OBJPROP_LEVELVALUE,i,values[i]); 
      //--- цвет уровня 
      ObjectSetInteger(0,name,OBJPROP_LEVELCOLOR,i,clrRed); 
      //--- стиль уровня 
      ObjectSetInteger(0,name,OBJPROP_LEVELSTYLE,i,STYLE_SOLID); 
      //--- толщина уровня 
      ObjectSetInteger(0,name,OBJPROP_LEVELWIDTH,i,1); 
      //--- описание уровня 
      ObjectSetString(0,name,OBJPROP_LEVELTEXT,i,DoubleToString(100*values[i],1)); 
      }
//--- успешное выполнение  
   return(true); 
  } 
//+------------------------------------------------------------------+
avatar

  13  verta81 Сообщений: 355

  • 18 июля 2023, 15:42
+
0
Спасибо.
Судя по описанию — ваш скрипт ближе к моей задумке. Завтра проверю.
avatar

  17  Boris54 Автор Сообщений: 756 - ПенSионер

  • 18 июля 2023, 16:38
+
0
сделал более универсальный и компактный код на любое количество уровней:



www.opentraders.ru/downloads/3632/
avatar

  34  AM2 Сообщений: 15882 - Андрей

  • 19 июля 2023, 17:47
+
0
Спасибо! Работает отлично. Этот вариант подходит под мою задачу!
avatar

  17  Boris54 Автор Сообщений: 756 - ПенSионер

  • 20 июля 2023, 07:19

Зарегистрируйтесь или авторизуйтесь, чтобы оставить комментарий
Начать торговлю с Альпари