高周波取引戦略のペニージャンプ

作者: リン・ハーンゼロ, 日付: 2014-08-18 12:52:35
タグ:高周波

$1.01 x $1.03 200 そして突然,このな機関投資家は $1.01 の3000株の購入を掛けてきて,その注文簿が $3.200 になります. $1.01 x $1.03 200. そして,このな機関投資家は,通常,象の象と呼ばれます. 高周波トレーダーは,1.01の価格がサポートされていることを知っていて,その価格を1.02ドルに1セント上げます. この戦略はペニージャンプと呼ばれます.

もし高周波トレーダーは,この株を買った後,価格が上昇していないとしても,その下には象が支えられているので,彼はすぐに反手で$1.01でその象に売却することができます.

高周波トレーダーの利益を得る方法は,市場微小構造によって取引相手の意図を推測し,他者より一歩先に位置を確立し,短時間で微小な利益を得て,すぐに市場から脱出するということです.

このゾウは,市場に巨大な代償を掲げているため,取引の意図を暴露し,自然に高周波トレーダーの狙いとなる.

現実の株式取引の世界では,このようなな機関投資家が,目立つように,市場に巨大な買取券を掲げているのはめったにないはずである.しかし,大きな機関投資家が,ある株から脱出したいと望んでいるので,意図的に巨大な買取券を掲げ,偽造を作り,高周波トレーダーを誘導し,株価を押し上げ,そして別の脳を転がす商品を投げるのが一般的です.これが私の世界におけるの取引です.

高周波トレーダーにとって,この戦略が認識され,反抗されたら,彼らは反抗し,機関投資家が反抗した豆腐を食べるために戦略を開発します.

フォローする:

img



var Counter = {
    i: 0,
    w: 0,
    f: 0
};

// Variables
var InitAccount = null;

function CancelAll() {
    while (true) {
        var orders = _C(exchange.GetOrders);
        if (orders.length == 0) {
            break;
        }
        for (var i = 0; i < orders.length; i++) {
            exchange.CancelOrder(orders[i].Id);
        }
        Sleep(Interval);
    }
}

function updateStatus(msg) {
    LogStatus("调戏次数:", Counter.i, "成功:", Counter.w, "失败:", Counter.f, "\n"+msg+"#0000ff\n"+new Date());
}

function main() {
    if (DisableLog) {
        EnableLog(false);
    }
    CancelAll();
    InitAccount = _C(exchange.GetAccount);
    Log(InitAccount);
    var i = 0;
    var locks = 0;
    while (true) {
        Sleep(Interval);
        var depth = _C(exchange.GetDepth);
        if (depth.Asks.length === 0 || depth.Bids.length === 0) {
            continue;
        }
        updateStatus("搜索大象中.... 买一: " + depth.Bids[0].Price + ",  卖一:" + depth.Asks[0].Price + ", 锁定次数: " + locks);
        var askPrice = 0;
        for (i = 0; i < depth.Asks.length; i++) {
            if (depth.Asks[i].Amount >= Lot) {
                askPrice = depth.Asks[i].Price;
                break;
            }
        }
        if (askPrice === 0) {
            continue;
        }
        var elephant = null;
        // skip Bids[0]
        for (i = 1; i < depth.Bids.length; i++) {
            if ((askPrice - depth.Bids[i].Price) > ElephantSpace) {
                break;
            }
            if (depth.Bids[i].Amount >= ElephantAmount) {
                elephant = depth.Bids[i];
                break;
            }
        }

        if (!elephant) {
            locks = 0;
            continue;
        }
        locks++;
        if (locks < LockCount) {
            continue;
        }
        locks = 0;

        updateStatus("调戏大象中....大象在第" + i + "档, " + JSON.stringify(elephant));
        exchange.Buy(elephant.Price + PennyTick, Lot, "Bids[" + i + "]", elephant);
        var ts = new Date().getTime();
        while (true) {
            Sleep(CheckInterval);
            var orders = _C(exchange.GetOrders);
            if (orders.length == 0) {
                break;
            }
            if ((new Date().getTime() - ts) > WaitInterval) {
                for (var i = 0; i < orders.length; i++) {
                    exchange.CancelOrder(orders[i].Id);
                }
            }
        }
        var account = _C(exchange.GetAccount);
        var opAmount = _N(account.Stocks - InitAccount.Stocks);
        if (opAmount < 0.001) {
            Counter.f++;
            Counter.i++;
            continue;
        }
        updateStatus("买单得手: " + opAmount +", 开始出手...");
        exchange.Sell(elephant.Price + (PennyTick * ProfitTick), opAmount);
        var success = true;
        while (true) {
            var depth = _C(exchange.GetDepth);
            if (depth.Bids.length > 0 && depth.Bids[0].Price <= (elephant.Price-(STTick*PennyTick))) {
                success = false;
                updateStatus("没有得手, 开始止损, 当前买一: " + depth.Bids[0].Price);
                CancelAll();
                account = _C(exchange.GetAccount);
                var opAmount = _N(account.Stocks - InitAccount.Stocks);
                if (opAmount < 0.001) {
                    break;
                }
                exchange.Sell(depth.Bids[0].Price, opAmount);
            }
            var orders = _C(exchange.GetOrders);
            if (orders.length === 0) {
                break;
            }
            Sleep(CheckInterval);
        }
        if (success) {
            Counter.w++;
        } else {
            Counter.f++;
        }
        Counter.i++;
        var account = _C(exchange.GetAccount);
        LogProfit(account.Balance - InitAccount.Balance, account);
    }
}

関連性

もっと

CAIXB1233この戦略は現時点では有効か?

bbありがとうございました. ご理解いただき,コメントを頂きました. ありがとうございました. https://dn-filebox.qbox.me/91dee18be7307389046517f405b410897a1f3fb9.png https://dn-filebox.qbox.me/4d90b4713a44f61b3a836114fceaf62bcff0756e.png https://dn-filebox.qbox.me/1937c68cfe9f33040d29e03efa5160e13c5ad174.png https://dn-filebox.qdn.me/bdc54915ecc86cebb582fee0307758519207a78.png