Hochfrequenz-Streitzeit-Support-Strategie

Schriftsteller:Das ist der kleine Zauberer., Datum: 2020-05-12 21:55:43
Tags:

Strategische Anleitung

Die Handelsmarke: Bitcoin (BTC)

Preisdifferenzdaten: BTC nachhaltig - BTC Quartals (Consolidation-Check ausgeschlossen)

Transaktionszeitraum: 1 Minute

头寸匹配:1:1

Transaktionsart: über die gleiche Sorte

Überschuss: Wenn das aktuelle Konto nicht gehalten wird und der Preis unterschreitet < (Langzeitausfall - Schwellenwert), wird der Preis unterschritten.

Leerpreisdifferenzierung: Leerpreisdifferenzierung, wenn das aktuelle Konto nicht gehalten wird und die Differenz > (Langzeitdifferenzniveau + Schwellenwert) ist; d.h.: BTC auf Dauer verkaufen, BTC vierteljährlich kaufen.

Überschüssige Differenzbindung: Überschüssige Differenz, wenn das aktuelle Konto mehrere BTC-Permanente und mehrere BTC-Quartalsfreie Bestellungen hält und die Differenz > das Niveau der langfristigen Differenz ist.

Ausgleichsbedingung für die Bereinigung von Leerpreisdifferenzen: Wenn das aktuelle Konto BTC-Permanente-Leerbestellungen hält und mehrere BTC-Bestellungen für Quartale hält, und der Preisdifferenz

Ein Beispiel:Nehmen wir an, dass BTC-Permanent und BTC-Periodenpreisdifferenz auf Dauer bei etwa 35 bleiben. Wenn eine Tagespreisdifferenz 50 erreicht, erwarten wir, dass die Preisdifferenz zu einem bestimmten Zeitpunkt in der Zukunft auf 35 oder darunter zurückkehrt. Dann können wir BTC-Permanent verkaufen und BTC-Perioden kaufen, um die Preisdifferenz zu ersetzen.

Kontaktinformationen

:point_right: Wenn Sie an dieser Strategie interessiert sind, bitte +V:Irene11229 (Klicken Sie auf meine Homepage, ich werde immer mehr Strategien aktualisieren, und Sie erhalten auch Marktanalysen von einigen der wichtigsten Börsen)


#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import json
import time

from kumex.client import Trade, Market


class Hf(object):

    def __init__(self):
        # read configuration from json file
        with open('config.json', 'r') as file:
            config = json.load(file)

        self.api_key = config['api_key']
        self.api_secret = config['api_secret']
        self.api_passphrase = config['api_passphrase']
        self.sandbox = config['is_sandbox']
        self.symbol_a = config['symbol_a']
        self.symbol_b = config['symbol_b']
        self.spread_mean = float(config['spread_mean'])
        self.leverage = float(config['leverage'])
        self.size = int(config['size'])
        self.num_param = float(config['num_param'])
        self.trade = Trade(self.api_key, self.api_secret, self.api_passphrase, is_sandbox=self.sandbox)
        self.market = Market(self.api_key, self.api_secret, self.api_passphrase, is_sandbox=self.sandbox)

    def get_symbol_price(self, symbol):
        ticker = self.market.get_ticker(symbol)
        return float(ticker['price'])


if __name__ == '__main__':
    hf = Hf()
    while 1:
        # ticker of symbols
        price_af = hf.get_symbol_price(hf.symbol_a)
        price_bf = hf.get_symbol_price(hf.symbol_b)
        # position of symbols
        position_a = hf.trade.get_position_details(hf.symbol_a)
        position_a_qty = int(position_a['currentQty'])
        position_b = hf.trade.get_position_details(hf.symbol_b)
        position_b_qty = int(position_b['currentQty'])
        # interval of price
        new_spread = price_af - price_bf
        print('new_spread =', new_spread)

        if position_a_qty == position_b_qty == 0 and new_spread < (hf.spread_mean - hf.num_param):
            buy_order = hf.trade.create_limit_order(hf.symbol_a, 'buy', hf.leverage, hf.size, price_af + 1)
            print('buy %s,order id =%s' % (hf.symbol_a, buy_order['orderId']))
            sell_order = hf.trade.create_limit_order(hf.symbol_b, 'sell', hf.leverage, hf.size, price_bf - 1)
            print('sell %s,order id =%s' % (hf.symbol_b, sell_order['orderId']))
        elif position_a_qty == position_b_qty == 0 and new_spread > (hf.spread_mean + hf.num_param):
            buy_order = hf.trade.create_limit_order(hf.symbol_a, 'sell', hf.leverage, hf.size, price_af - 1)
            print('sell %s,order id =%s' % (hf.symbol_a, buy_order['orderId']))
            sell_order = hf.trade.create_limit_order(hf.symbol_b, 'buy', hf.leverage, hf.size, price_bf + 1)
            print('buy %s,order id =%s' % (hf.symbol_b, sell_order['orderId']))
        elif position_a_qty > 0 and position_b_qty < 0 and new_spread > hf.spread_mean:
            buy_order = hf.trade.create_limit_order(hf.symbol_a, 'sell', position_a['realLeverage'],
                                                    position_a_qty, price_af + 1)
            print('sell %s,order id =%s' % (hf.symbol_a, buy_order['orderId']))
            sell_order = hf.trade.create_limit_order(hf.symbol_b, 'buy', position_a['realLeverage'],
                                                     position_a_qty, price_bf - 1)
            print('buy %s,order id =%s' % (hf.symbol_b, sell_order['orderId']))
        elif position_a_qty < 0 and position_b_qty > 0 and new_spread < hf.spread_mean:
            buy_order = hf.trade.create_limit_order(hf.symbol_a, 'buy', position_a['realLeverage'],
                                                    position_a_qty, price_af - 1)
            print('buy %s,order id =%s' % (hf.symbol_a, buy_order['orderId']))
            sell_order = hf.trade.create_limit_order(hf.symbol_b, 'sell', position_a['realLeverage'],
                                                     position_a_qty, price_bf + 1)
            print('sell %s,order id =%s' % (hf.symbol_b, sell_order['orderId']))

        time.sleep(60)

Mehr

VerbraucherDu sagst nicht, dass die Preise für dauerhafte Produkte fast so hoch sind wie die Preise für aktuelle Produkte, die Preise sind größer, die Preise müssen im Quartal hoch sein.