GithubHelp home page GithubHelp logo

ts2_control_panel's People

Contributors

agdmexm avatar

Watchers

 avatar

ts2_control_panel's Issues

[3000] Сделать меню триггеров: создание, редактирование, удаление

АПИ:
GET:

  • /getTriggers - возвращает из конфига триггеры
    POST:
  • /addTrigger {trigger: название_триггера, config: конфиг_триггера} - добавляет триггер
  • /editTrigger {trigger: название_триггера, edit: {key: ключ_из_конфига, value: значение на которое меняем}[]} - меняет конфиг
  • /deleteTrigge {trigger: название_триггера}- удаляет триггер
    во всех запросах, в теле ответа есть параметр success: boolean, если false - то действие не выполнено, чаще всего есть еще сообщение об ошибке в поле message
    типа в ответе буде {success: false, message: '...'}

[3000] Вкладка "Утилиты" содержащая в себе конструктор сетки и конструктор условий

Конструктор условий

Представляет собой окно с blockly, поле ввода текста, выпадающий список и набор кнопок
Поле ввода предназначенр для ввода названия сохраняемого рабочего места (функция getWorkspace()), выпадающий список для выбора для загрузки рабочих мест (функция loadWorkspace(workspace)), кнопки для операций над сохранением (сохранить - сохраняет рабочее место под названием из поля ввода), загрузить - загружает сохранение через loadWorkspace, генерировать код - вызывает функцию generateCode() которая возвращает строку сгенерированного кода, в которой необходимо заменить все && на 'and', || на 'or', убрать BASE{...} (оставив содержимое {} но без скобок). Сгенерированный код необходимо показать юзеру (или в отдельном поле, или в модальном окне) и дать возможность 1 кнопкой скопировать в буфер.

Конструктор сетки

image

Конструктор состоит из 3 частей: поля ввода, график и поля с результатом, результат автоматически обновляется при изменении значения из любого поля. Над графиком 3 выпадающих списка, с биржей, с парой и с таймфреймом. Биржа и пара получается с сервера, набор таймфреймов фиксированный. Данные для построения графика получаем с сервера после выбора биржи и пары. Рассчеты:
calculate(){
      this.gridCoverage = 0 // % перекрытия сетки, выводится в поле с результатом
      this.stepGrid = [] // сетка усреднения, выводится в соответствующее поле
      this.depositGrid = this.calculateMartingale(this.orders, this.martingale) 
// сетка депозитов, выводится в соответствующее поле, orders - параметр задаваемый пользователем "кол-во ордеров", 
//martingale - параметр задаваемый пользователем "мартингейл, %"
      this.kLineChart.removeTag() // удаляем метки с графика
      this.kLineChart.createTag({
        id: Date.now(),
        point: {value: this.markPrice},
        text: this.depositGrid[0],
        mark: 'Order 0'
      }) // рисуем горизонтальную полосу от текущей цены
      let prevOrderPrice = this.markPrice
      let step = this.baseStep * this.stepMultiply 
// baseStep - параметр задаваемые пользователем "базовый шаг", 
//stepMultiply -  параметр задаваемые пользователем "множитель шага"
      this.gridCoverage += step/100
      this.stepGrid.push((step/100).toFixed(4))
      for (let i = 1; i < this.depositGrid.length; i++) {
        this.kLineChart.createTag({
          id: Math.random(),
          point: {value: prevOrderPrice*(1 - step/100)},
          text: `Order ${i}`,
          mark: `Order ${i}`
        })
// рисуем горизонтальную полосу на цене prevOrderPrice*(1 - step/100)
        prevOrderPrice = prevOrderPrice*(1 - step/100)
        step *= this.stepMultiply
        this.stepGrid.push((step/100).toFixed(4))
        this.gridCoverage += step/100
      }
      this.gridCoverage = (this.gridCoverage*100).toFixed(4)
    },
    calculateMartingale(orders, martingale){
      let summ = 0
      let volumes = []
      for (let i = 0; i < orders; i++){
        summ += (1 + martingale/100)**i
      }
      let x = 1/summ
      volumes.push(x.toFixed(4))
      for (let i = 1; i < orders; i++){
        x *= 1 + martingale/100
        volumes.push(x.toFixed(4))
      }
      return volumes
    }

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.