ts2_control_panel's People
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] Сделать меню трейдеров: создание, редактирование, удаление
API:
GET:
/getTraders - возвращает список трейдеров
POST:
/addTrader - {trader: имя_трейдера, config: конфиг}
/editTrader - {trader: string, edit: Array<{key: keyof StrategyConfig, value: string}>}
/deleteTrader - {trader: string }
[3000] Вкладка "Утилиты" содержащая в себе конструктор сетки и конструктор условий
Конструктор условий
Представляет собой окно с blockly, поле ввода текста, выпадающий список и набор кнопок
Поле ввода предназначенр для ввода названия сохраняемого рабочего места (функция getWorkspace()), выпадающий список для выбора для загрузки рабочих мест (функция loadWorkspace(workspace)), кнопки для операций над сохранением (сохранить - сохраняет рабочее место под названием из поля ввода), загрузить - загружает сохранение через loadWorkspace, генерировать код - вызывает функцию generateCode() которая возвращает строку сгенерированного кода, в которой необходимо заменить все && на 'and', || на 'or', убрать BASE{...} (оставив содержимое {} но без скобок). Сгенерированный код необходимо показать юзеру (или в отдельном поле, или в модальном окне) и дать возможность 1 кнопкой скопировать в буфер.
Конструктор сетки
Конструктор состоит из 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
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.