Type/to search
8
Follow
1362
Followers
Стратегия захвата новой монеты на рынке цифровой валюты (обучение)
Discussions
Created 2022-04-20 15:59:01  Updated 2023-09-20 10:29:48
 0
 3337

img

Стратегия захвата новой монеты на рынке цифровой валюты (обучение)

За последние два дня один из пользователей группы Telegram отправил мне личное сообщение в надежде получить пример разработки стратегии IPO. Иногда, когда биржа выставляет новые монеты, вы хотите захватить некоторые из них. В этой статье описывается простая стратегия новых монет.

Требования к стратегии

Например, в настоящее время на определенной бирже определенная торговая пара: XXX_USDT, еще не котируется на бирже. Но скоро он появится в сети. Необходима программа для мониторинга рынка XXX_USDT этой биржи. Как только будет достигнут верхний предел данной торговой пары, ею можно будет торговать. Затем выставьте 10 лимитных ордеров на покупку, укажите количество и разместите ордера на получение монет. Покупка завершает задачу. Если вы не можете его купить, просто держите его на удержании, пока все заказы не будут выполнены, и вы не купите монеты.

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

Стратегический код

Определение параметров стратегии:

Здесь мы определяем несколько параметров для управления операциями, такими как размещение заказов.
img

Реализация кода:

pine
function pendingOrders(ordersNum, price, amount, deltaPrice, deltaAmount) { var routineOrders = [] var ordersIDs = [] for (var i = 0 ; i < ordersNum ; i++) { var routine = exchange.Go("Buy", price + i * deltaPrice, amount + i * deltaAmount) routineOrders.push(routine) Sleep(ApiReqInterval) } for (var i = 0 ; i < routineOrders.length ; i++) { var orderId = routineOrders[i].wait() if (orderId) { ordersIDs.push(orderId) Log("成功挂单", orderId) } } return ordersIDs } function main() { if (symbol == "null" || pendingPrice == -1 || pendingAmount == -1 || pendingPrice == -1 || deltaPrice == -1 || deltaAmount == -1) { throw "参数设置错误" } exchange.SetCurrency(symbol) // 屏蔽错误信息 SetErrorFilter("GetDepth") while (true) { var msg = "" var depth = exchange.GetDepth() if (!depth || (depth.Bids.length == 0 && depth.Asks.length == 0)) { // 没有深度 msg = "没有深度数据,等待!" Sleep(500) } else { // 获取到深度 Log("并发下单!") var ordersIDs = pendingOrders(ordersNum, pendingPrice, pendingAmount, deltaPrice, deltaAmount) while (true) { var orders = _C(exchange.GetOrders) if (orders.length == 0) { Log("当前挂单个数0,停止运行") return } var tbl = { type: "table", title: "当前挂单", cols: ["id", "价格", "数量"], rows: [] } _.each(orders, function(order) { tbl.rows.push([order.Id, order.Price, order.Amount]) }) LogStatus(_D(), "\n`" + JSON.stringify(tbl) + "`") Sleep(500) } } LogStatus(_D(), msg) } }

Стратегия обнаруживает API биржи и интерфейс книги заказов. Как только данные книги заказов становятся доступны, стратегия использует функцию exchange.Go для размещения заказов. После размещения ордера статус текущего отложенного ордера будет проверяться в цикле. Стратегия фактически не была протестирована. Вот только ссылка на дизайн кода. Те, кому интересно, могут модифицировать и добавлять функции для использования.

Полная стратегия: https://www.fmz.com/strategy/358383

Related Recommendations
Comment
All comments (0)
No data
No data
  • 1
iPhone Download
Forums
PINE Language
© 2015 - ∞ INVENTOR PTE LTD (SG)