Exemplo n.º 1
0
        /// <summary>
        /// チャネルブレイクアウト戦略
        /// 成行版
        /// </summary>
        /// <param name="exchangeId">取引所ID</param>
        /// <param name="status">BOTの状態</param>
        public ChannelBreakOutStrategyNonStop(int exchangeId, BotStatusManager status, string baseChannelKey, List <double> parameter)
            : base(exchangeId, status, parameter)
        {
            orderCounter = new Counter(ExecutePeriod);
            //interval = new CountDown(60);
            //interval.InitCount();

            //baseHistory1SKey = HistoryProperty.GetKey(HistoryKind.HISTORY, 1, "1s");
            //this.baseChannelKey = baseChannelKey;

            // 単体ポジション管理
            positionManager = new SinglePositionManager(OrderAmount, Client);
        }
Exemplo n.º 2
0
        /// <summary>
        /// SMAでトラリピ売買
        /// パラメータ
        /// 0:SfdMode SFDの時は一方向のみ 0
        /// 1:executePeriod 処理の周期(秒)60
        /// 2:baseOrderHeight 値幅の基本値 4000
        /// 3:orderAmount 1回の注文量 0.01
        /// 4:CancelMinute キャンセルまでの時間(分) 15
        /// 5:StopLossMinute 損切りまでの時間(分) 10080
        /// 6:価格参照キー
        /// 7:SMA短期キー
        /// 8:SMA長期キー
        /// 9:SFDキー(null可)
        /// </summary>
        /// <param name="exchangeId">取引所ID</param>
        /// <param name="status">BOTの状態</param>
        /// <param name="status">パラメータ</param>
        public SmaTrapStrategy(int exchangeId, BotStatusManager status, List <double> parameter)
            : base(exchangeId, status, parameter)
        {
            orderCounter = new Counter(ExecutePeriod);

            //baseHistory1SKey = HistoryProperty.GetKey(HistoryKind.HISTORY, 1, "1s");

            //// SMA
            //baseSmaShort = HistoryProperty.GetKey(HistoryKind.SMA, 5, "5m");
            //baseSmaLong = HistoryProperty.GetKey(HistoryKind.SMA, 6, "5m");

            //// SFD
            //baseSfd = HistoryProperty.GetKey(HistoryKind.SFD, 1, "1s");

            // トラリピの注文管理
            tpm = new TrapPositionManager(Client, CancelMinute, StopLossMinute);
        }
Exemplo n.º 3
0
        /// <summary>
        /// 初期化
        /// </summary>
        public void Initialize()
        {
            // BOTステータス初期化
            status = new BotStatusManager(dbContextOptions);

            // 各種アルゴリズム初期化
            InitializeAlgorithm();

            // 試作品アルゴリズム初期化
            //var wip2 = new SmaTrapStrategy(bitflyer, status);
            //AlgorithmList.Add(1, wip2);
            //var wip2 = new TradeByVol(bitflyerFX, status);
            //AlgorithmList.Add(1, wip2);  // TODO:一時的にアルゴリズム4を割り当てる

            // データ取るのでコメントアウト
            ////AlgorithmList.Add(2, wip2);  // TODO:一時的にアルゴリズム2を割り当てる
            //var key1 = HistoryProperty.GetKey(HistoryKind.CHANNEL, 5, "15m");
            //var wip1 = new ChannelBreakOutStrategyNonStop(bitflyerFX, status, key1);
            //AlgorithmList.Add(1, wip1);  // TODO:一時的にアルゴリズム1を割り当てる
            //var key2 = HistoryProperty.GetKey(HistoryKind.CHANNEL, 6, "30m");
            //var wip2 = new ChannelBreakOutStrategyNonStop(bitflyerFX, status, key2);
            //AlgorithmList.Add(2, wip2);  // TODO:一時的にアルゴリズム2を割り当てる
            //var key3 = HistoryProperty.GetKey(HistoryKind.CHANNEL, 7, "30m");
            //var wip3 = new ChannelBreakOutStrategyNonStop(bitflyerFX, status, key3);
            //AlgorithmList.Add(3, wip3);  // TODO:一時的にアルゴリズム3を割り当てる
            //var key4 = HistoryProperty.GetKey(HistoryKind.CHANNEL, 8, "1h");
            //var wip4 = new ChannelBreakOutStrategyNonStop(bitflyerFX, status, key4);
            //AlgorithmList.Add(4, wip4);  // TODO:一時的にアルゴリズム4を割り当てる

            // 非同期なタスクを生成
            var task = Task.Run(async() =>
            {
                try
                {
                    Logger.Log("メインロジックを開始します");
                    await MainLogic();
                }
                catch (Exception ex)
                {
                    Logger.Log("Error: " + ex.Message);
                }
            });

            task.Wait();
        }
Exemplo n.º 4
0
 /// <summary>
 /// 売買アルゴのスーパークラス
 /// </summary>
 /// <param name="exchangeId">取引所ID</param>
 /// <param name="status">BOTの状態</param>
 /// <param name="status">パラメータ</param>
 public Algorithm(int exchangeId, BotStatusManager status, List <double> parameter)
 {
     Parameter       = parameter;
     this.exchangeId = exchangeId;
     this.status     = status;
 }