$1.01 x $1.03. 200, e então, de repente, este investidor institucional louco entra e coloca uma compra de 3.000 ações por $1.01, e então o livro de ordens se torna 3.200. $1.01 x $1.03. 200. E nós normalmente chamamos este investidor institucional louco de "elefante", "elefante", e os traders de alta frequência sabem que o preço de $1.01 tem uma compra apoiada, então eles aumentam seu preço de oferta por 1 centavo para $1.02, e essa estratégia é chamada de Penny Jump; porque os traders de alta frequência sabem que no próximo arquivo, há um elefante que está apoiado; então, se o preço subir para $1.03 x $1.05, ele pode ganhar imediatamente um lucro de $0.01.
Se o comerciante de alta frequência comprar o estoque depois, mesmo que o preço não suba, porque um elefante está sendo apoiado abaixo, ele pode rapidamente vender para o elefante por US $ 1.01.
Para os traders de alta freqüência, o método de lucro é simples: a microstrutura do mercado especula sobre as intenções dos seus concorrentes e, em seguida, estabelece um segmento antes dos outros.
No caso do elefante, ele expõe as suas intenções de negociação por causa de uma quantia enorme pendurada no mercado, tornando-se naturalmente um alvo de caça para os traders de alta frequência.
No mundo real de negociação de ações, deve ser raro que os investidores institucionais tão espertos coloquem enormes compras no mercado. Em vez disso, é comum que os grandes investidores institucionais, que querem sair de uma ação, coloquem intencionalmente enormes compras para criar uma ilusão, para atrair os traders de alta frequência para o mercado para impulsionar os preços das ações, e depois outro golpe de cabeça para fora.
Para os traders de alta frequência, uma vez que essa estratégia é percebida e comparada, eles voltam a se revoltar contra a brincadeira, desenvolvendo estratégias para comer o tofu que os investidores institucionais usam contra a brincadeira.
Apêndice:
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); } }
Caixb1233Mas o que eu quero dizer é que, no momento, essa estratégia ainda funciona no disco real.
bbMuito obrigada por compartilhar, ainda não entendi muito, conforme o entendimento, obrigado! 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