Very simple, just for learn. Code is best annotation.
Iceberg commissioning, breaking orders into small pieces and selling to avoid a market shock, is a good simple introduction to Bitcoin quantitative trading learning strategy.
function main(){ var initAccount = _C(exchange.GetAccount) if (initAccount.Stocks < SELLAMOUNT){ throw 'check your account amount to sell' } while(true){ var account = _C(exchange.GetAccount) var dealAmount = initAccount.Stocks - account.Stocks var ticker = _C(exchange.GetTicker) if(SELLAMOUNT - dealAmount > SELLSIZE){ var id = exchange.Sell(ticker.Buy, SELLSIZE) Sleep(INTERVAL*1000) if(id){ exchange.CancelOrder(id) // May cause error log when the order is completed, which is all right. }else{ throw 'sell error' } }else{ account = _C(exchange.GetAccount) var avgCost = (account.Balance - initAccount.Balance)/(initAccount.Stocks - account.Stocks) Log('Iceberg order to sell is done, avg price is ', avgCost) // including fee cost return } } }
The grassFor beginners, programmatic trading is not only about completing a complete strategy, but also about small tasks like commissioning an iceberg.