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

Рейтинг 2089



РЕКОМЕНДУЮ



Информационный советник

Андрей. Привет.

Возможно ли вывести советником в левый угол, информацию, по криптовалютам, которых нету в терминале?

Требуется вывести информацию изменения цены за день, нескольких пар. А именно от открытия дня цены, до текущего значения цены. Сравнить как за текущий день изменилась цена данного инструмента, до текущего значения цены.

Пример, открытие дня скажем TRXUSDT. Цена 100, текущее значение 90. Вывести на экран, разницу. Значение будет 10.
  • 0
  • Просмотров: 3520
  • 23 марта 2022, 09:26
  • Syte
Понравилcя материал? Не забудьте поставить плюс и поделиться в социальной сети!

Вступите в группу "Стол заказов MQL", чтобы следить за обновлениями
ПРИСОЕДИНИТЬСЯ К ГРУППЕ
присоединиться
  Предыдущая запись в группе
Прошу исправить проблему в советнике.
Следующая запись в группе  
Информационный советник (доработка)
22 марта 2022
24 марта 2022

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

+
0
Забыл сказать
Беру котировки пар тут
api.binance.com/api/v3/ticker/price?symbol=BNBUSDT
api.binance.com/api/v3/ticker/price?symbol=TRXUSDT
Это текущая цена.
Редактирован: 23 марта 2022, 11:55
avatar

  14  Syte Автор Сообщений: 399

  • 23 марта 2022, 11:54
+
0
поставлю на 28-е. надо будет смотреть что можно сделать
avatar

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

  • 23 марта 2022, 17:22
+
0
Это не все. Нужно сравнение пар. В общем, просто прикинь, это вообще возможно? А я ТЗ уже опишу. Я просто сомневаюсь. Есть интересная идея, не пойму, просто, это возможно, или нет.
avatar

  14  Syte Автор Сообщений: 399

  • 23 марта 2022, 19:22
+
+1
я сделал набросок. единичный запрос проходит, выдает:


{"symbol":"BNBUSDT","price":"407.90000000"}


но когда идет парсинг, пишет ошибку:


send request failed [12175]


поискал причину на мкл и нашел:


 Мало какой сайт позволит заниматься постоянным парсингом своих данных.
avatar

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

  • 23 марта 2022, 19:38
+
0
я думаю, дело в скорости запросов. Их нужно уменьшить. Скажем, раз в 10 секунд. Так как могут блочить, если чаще 5 секунд.
avatar

  14  Syte Автор Сообщений: 399

  • 23 марта 2022, 20:23
+
0
Мало какой сайт позволит заниматься постоянным парсингом своих данных.
*uptrend* 
Эт точно.8-) 
avatar

  24  ShamanHand Сообщений: 1092 - Наношу добро, причиняю пользу.

  • 24 марта 2022, 07:41
+
0
Можно для начала, уменьшить запрос цены, скажем раз в 30 сек, и даже раз в минуту. Я пока не понял, как получить данные начала дня. Для начала, это можно просто вносить руками. На сайте написано, если вы входите без ключа API то будем блочить, от суток до 48 часов, если запросы частые. Хотя период не указан. На форумах пишут, что блокировка не происходит, если запросы не чаще 30 сек.
avatar

  14  Syte Автор Сообщений: 399

  • 23 марта 2022, 20:28
+
0
Можно для начала, уменьшить запрос цены, скажем раз в 30 сек


ничего не изменилось:


//+------------------------------------------------------------------+
//|                                                      Binance.mq4 |
//|                                              Copyright 2022, AM2 |
//|                                     https://www.forexsystems.biz |
//+------------------------------------------------------------------+
#property copyright "Copyright 2022, AM2"
#property link      "https://www.forexsystems.biz"
#property version   "1.00"
#property strict
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//---

//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert deinitialization function                                 |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
//---

  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
   string header;
   char post[],result[];
   int res;
//--- для работы с сервером необходимо добавить URL "https://www.google.com/finance"
//--- в список разрешенных URL (Главное меню->Сервис->Настройки, вкладка "Советники"):
   string url="https://www.api.binance.com/api/v3/ticker/price?symbol=BNBUSDT";
//--- обнуляем код последней ошибки
   ResetLastError();
//--- загрузка html-страницы с Google Finance
   int timeout=5000; //--- timeout менее 1000 (1 сек.) недостаточен при низкой скорости Интернета
   res=WebRequest("GET",url,NULL,NULL,30000,post,0,result,header);


   Comment("\n Symbol: ",CharArrayToString(result,0,33));
  }
//+------------------------------------------------------------------+

avatar

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

  • 23 марта 2022, 20:44
+
0
Скорее всего нужно время для разблокировки. Так как если блокернули, то не получишь данные. А если через API ключ? При привязке к аккаунту? Или крайний вариант, получать данные, через сохраненный файл, который придется руками обновлять?!
avatar

  14  Syte Автор Сообщений: 399

  • 23 марта 2022, 20:55
+
0
Скорее всего нужно время для разблокировки. Так как если блокернули, то не получишь данные. А если через API ключ? При привязке к аккаунту? Или крайний вариант, получать данные, через сохраненный файл, который придется руками обновлять?!
Они блокируют, по IP. до 48 часов. При частых запросах. Или мол активируйтесь, по API ключу, и делайте, что хотите.
avatar

  14  Syte Автор Сообщений: 399

  • 23 марта 2022, 20:56
+
0
www из урла уберите
avatar

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

  • 23 марта 2022, 20:57
+
0
string url="https://api.binance.com/api/v3/ticker/price?symbol=BNBUSDT";

Редактирован: 23 марта 2022, 21:04
avatar

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

  • 23 марта 2022, 21:03
+
0
у меня без ввв ни в адресе не проходит ни в настройках терминала
avatar

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

  • 23 марта 2022, 21:45
+
0
53 минуты работает, обновляются данные
avatar

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

  • 23 марта 2022, 21:48
+
0
avatar

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

  • 23 марта 2022, 21:57
+
0
У меня данные обрезанные. И не обновляются.

Что нужно изменить, что бы было как в видео?
avatar

  14  Syte Автор Сообщений: 399

  • 24 марта 2022, 10:02
+
0
Во, разобрался
Изменил
Comment("\n Symbol: ",CharArrayToString(result,0,33));

Добавил «0»
Comment("\n Symbol: ",CharArrayToString(result,0,330));

В WebRequest прописал не полную строку api.binance.com/api/v3/ticker/
И все за работало

avatar

  14  Syte Автор Сообщений: 399

  • 24 марта 2022, 10:52
+
0
Теперь остается вопрос, откуда брать начала дня, данной пары? Может у кого то, есть какие то идеи? Самое простое конечно, найти на графике визуально, и вписывать это значение, руками. От него считать уже изменение, по текущей цене.
avatar

  14  Syte Автор Сообщений: 399

  • 24 марта 2022, 10:57
+
0
начало дня из терминала брокера где торгуются эти пары
avatar

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

  • 24 марта 2022, 17:24
+
0
Я предполагаю, можно пока руками начало дня вписывать, я пока не особо разобрался. как эти данные получить.
avatar

  14  Syte Автор Сообщений: 399

  • 24 марта 2022, 19:30
+
+1
в документации по API банана есть параметры запроса для цен любого ТФ.
avatar

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

  • 24 марта 2022, 17:41
+
+1
string url="https://api.binance.com/api/v3/ticker/24hr?symbol=BTCUSDT";

Пример ответа:
{
  "symbol": "BNBBTC", // пара
  "priceChange": "-94.99999800", // изменение цены за сутки 
  "priceChangePercent": "-95.960", // изменение цены за сутки %
  "weightedAvgPrice": "0.29628482", //Средневзвешенная цена
  "prevClosePrice": "0.10002000", // Предыдущая цена закрытия
  "lastPrice": "4.00000200",     // Последняя цена
  "lastQty": "200.00000000",    // Последний объем
  "bidPrice": "4.00000000",    // Цена покупки
  "askPrice": "4.00000200",    // Цена продажи
  "openPrice": "99.00000000",    // Цена открытия
  "highPrice": "100.00000000",    // Самая высокая цена
  "lowPrice": "0.10000000",    // Самая низкая цена
  "volume": "8913.30000000",    // Объем торгов базовой валюты
  "quoteVolume": "15.30000000",    // Объем торгов квотируемой
  "openTime": 1499783499040,    // Время открытия
  "closeTime": 1499869899040,    // Время закрытия
  "fristId": 28385,   // Id первой сделки
  "lastId": 28460,    // Id последней сделки
  "count": 76         // Кол-во сделок
}
avatar

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

  • 24 марта 2022, 18:07
+
0
О, не успел выше написать, что я не знаю как это сделать, а тут, на тебе. Все уже есть. Спасибо огромное.
avatar

  14  Syte Автор Сообщений: 399

  • 24 марта 2022, 19:31
+
0
Андрей, я думаю это можно использовать. Описал полное ТЗ в другом топике (http://zakaz.opentraders.ru/72895.html). Если есть возможность добавить, получение опен начала суток, а лучше close прошлых суток. То вставь это, в советника. Если не получиться, или времени, нет, согласен, на глобальную перемену, где руками вводить нужно начало дня.
avatar

  14  Syte Автор Сообщений: 399

  • 24 марта 2022, 19:34
+
0
как формировать запрос по определенному символу и цене открытия пока не сообразил. пробовал так:


https://www.api.binance.com/api/v3/ticker/openPrice?symbol=BNBUSDT


не выходит
avatar

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

  • 29 марта 2022, 01:58
+
+1
Данные по свечам – /api/v1/klines
Возможно это поможет вам разобраться: bablofil.com/binance-api/
avatar

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

  • 29 марта 2022, 21:21
+
0
Ну значит проще, сделай, цену открытия в глобальную переменную. Руками начало дня буду вписывать. В любом случаи, советник, информационный не торговый. Мне главное руками разницу не считать. А потом, я возможно, что то найду, как автоматически получать начало дня
avatar

  14  Syte Автор Сообщений: 399

  • 29 марта 2022, 09:12
+
0
цену открытия еще поискать надо:

api.binance.com/api/v1/klines?symbol=BNBUSDT&interval=1d


[[1605398400000,"27.93590000","28.23320000","27.07000000","27.67860000","1442022.54800000",1605484799999,"40116215.60901730",146356,"673956.42300000","18754846.24276470","0"],[1605484800000,"27.68220000","28.22020000","27.44610000","27.94510000","16853...<\code>
avatar

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

  • 29 марта 2022, 22:11
+
0
такой запрос дает данные по одной свече:

api.binance.com/api/v1/klines?symbol=BNBUSDT&interval=1d&limit=1

теперь надо смотреть что здесь цена открытия:


[[1648512000000,"430.20000000","441.60000000","429.40000000","436.40000000","524281.23900000",1648598399999,"228505987.85730000",305509,"266196.49500000","116057396.41620000","0"]]
avatar

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

  • 29 марта 2022, 22:19
+
0
:) 


[
  [
    1499040000000,      // Время открытия
    "0.01634790",       // Цена открытия (Open)
    "0.80000000",       // Максимальная цена (High)
    "0.01575800",       // Минимальная цена (Low)
    "0.01577100",       // Цена закрытия (Close)
    "148976.11427815",  // Объем
    1499644799999,      // Время закрытия
    "2434.19055334",    // Объем квотируемой валюты
    308,                // Кол-во сделок
    "1756.87402397",    // Taker buy base asset volume
    "28.46694368",      // Taker buy quote asset volume
    "17928899.62484339" // Ignore
  ]
]
avatar

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

  • 29 марта 2022, 22:26
+
0
"430.20000000", //Цена открытия (Open)
avatar

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

  • 29 марта 2022, 22:29
+
0
Андрей, получается написать, или проблемы все таки есть?
avatar

  14  Syte Автор Сообщений: 399

  • 1 апреля 2022, 08:39
+
0
получается написать, или проблемы все таки есть?

пока только нехватка времени
avatar

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

  • 1 апреля 2022, 20:25
+
0
Ну это нормально :)  Я не тороплюсь. :) 
avatar

  14  Syte Автор Сообщений: 399

  • 2 апреля 2022, 08:51
+
0
сегодня хотел отладить, опять не читает
avatar

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

  • 4 апреля 2022, 21:02
+
0
*girlcry* 
avatar

  14  Syte Автор Сообщений: 399

  • 4 апреля 2022, 21:14
+
0
Ну тогда один вариант, сделать, пары крипты те, которые в терминале есть. Сделай на выбор, те которые в терминале есть. Я поищу брокера, который нужные пары котирует. Потом в коде просто заменю, на необходимые. Или если, есть возможность в глобальную переменную выведи, что бы из глобальных переменных, можно было прописать нужные пары.
avatar

  14  Syte Автор Сообщений: 399

  • 4 апреля 2022, 21:18

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