public void TestGetKline() { ThreeMarketsDataProviderModel model = env.CurrentKline; Assert.AreEqual(10, model.Coin12CoinKline.Close); Assert.AreEqual(0.3M, model.Coin22CoinKline.Close); Assert.AreEqual((0.3M / 10) + 0.001M, model.Coin22Coin1Kline.Close); env.MoveNextTime(out model); Assert.AreEqual(11, model.Coin12CoinKline.Close); Assert.AreEqual(0.4M, model.Coin22CoinKline.Close); Assert.AreEqual((0.4M / 11) - 0.002M, model.Coin22Coin1Kline.Close); }
/// <summary> /// 運行策略 /// /// 那個貨幣漲最多就持有那個貨幣,如果都是跌,就平倉 /// </summary> /// <param name="model"> 當下的市場資訊 </param> /// <returns></returns> public override StrategyAction PolicyDecision(ThreeMarketsDataProviderModel model) { buffer.Enqueue(model); if (buffer.Count < ObservationTime || !CanTrading()) { return(StrategyAction.WaitBuffer); } if (Coin1ToCoinChange < 0 && Coin2ToCoinChange < 0) { return(StrategyAction.Coin); } if (Coin1ToCoinChange > Coin2ToCoinChange) { return(StrategyAction.Coin1); } else { return(StrategyAction.Coin2); } }