- Square
- 8小时 ema
8小时 ema
Author:
Crypto Joe, Date: 2024-05-15 15:27:59
Tags:
/*backtest
start: 2022-11-01 00:00:00
end: 2024-05-14 00:00:00
period: 4h
basePeriod: 15m
exchanges: [{"eid":"Binance","currency":"BTC_USDT","stocks":0}]
*/
function main(){
let lastK;
let bought;
exchange.SetMaxBarLen = 1000;
while (true) {
const records = exchange.GetRecords(PERIOD_H1 * 8);
// if (records.length <= 676) continue;
// Log(records.length);
if (!lastK || records[records.length - 1].Time != lastK.Time) {
lastK = records[records.length - 1];
} else {
continue;
}
// records 最后一根 k 线是开盘的时候产生的 k 线,需要去掉,因为我们只关心收盘 K 线
records.splice(-1);
const ema169 = talib.EMA(records, 169);
const ema12 = talib.EMA(records, 12);
const ema676 = talib.EMA(records, 676);
$.PlotLine('EMA169', ema169[ema169.length - 1]);
$.PlotLine('EMA12', ema12[ema12.length - 1]);
$.PlotLine('EMA676', ema676[ema676.length - 1]);
const account = _C(exchange.GetAccount);
const ticker = _C(exchange.GetTicker);
const cross = _Cross(ema12, ema169);
if (!bought && cross > 0) {
exchange.Buy(ticker.Last, 0.99 * account.Balance / ticker.Last);
bought = true;
}
if (bought && cross < 0) {
exchange.Sell(ticker.Last, account.Stocks);
bought = false;
}
}
}
template: strategy.tpl:40:21: executing "strategy.tpl" at <.api.GetStrategyListByName>: wrong number of args for GetStrategyListByName: want 7 got 6