{
  "source": "/Users/xavis/workspace/ncue/DeepCoin/docs/03_analysis/general_analysis_trades.csv",
  "profile_json": "/Users/xavis/workspace/ncue/DeepCoin/docs/03_analysis/gt_mtf_profile.json",
  "calibration_json": "/Users/xavis/workspace/ncue/DeepCoin/docs/03_analysis/gt_calibration_report.json",
  "buy_profile_features": [
    "m3_ga_cci_20",
    "m3_bb_pos",
    "m3_ga_keltner_pos",
    "m3_ga_mfi_14",
    "m3_RSI",
    "m3_ga_donchian_pos",
    "m5_bb_pos",
    "m5_ga_cci_20",
    "m5_ga_mfi_14",
    "m5_ga_keltner_pos",
    "m5_ga_donchian_pos",
    "m5_ga_cci_oversold",
    "m10_bb_pos",
    "m10_ga_cci_20",
    "m10_ga_donchian_pos",
    "m10_ga_keltner_pos",
    "m10_stoch_k",
    "m10_ga_ha_bull",
    "m15_bb_pos",
    "m15_ga_cci_20",
    "m15_ga_ha_bull",
    "m15_ga_keltner_pos",
    "m15_ga_donchian_pos",
    "m15_ga_williams_overbought",
    "m30_ga_ha_bull",
    "m30_ga_williams_overbought",
    "m30_bb_pos",
    "m30_ga_cci_20",
    "m30_ga_donchian_pos",
    "m30_ga_cci_overbought",
    "m60_ga_ha_bull",
    "m60_bb_pos",
    "m60_ga_cci_20",
    "m60_ga_williams_overbought",
    "m60_ga_keltner_pos",
    "m60_ga_cci_overbought",
    "m240_ga_ha_bull",
    "m240_ga_ha_trend_up",
    "m240_ga_chart_ha_trend",
    "m240_ga_cci_20",
    "m240_bb_pos",
    "m240_ga_keltner_pos",
    "d1_ga_ha_bull",
    "d1_ga_cci_20",
    "d1_ga_hammer",
    "d1_ga_cci_oversold",
    "d1_bb_pos",
    "d1_ga_ha_trend_up",
    "m10_ga_williams_overbought",
    "m10_ga_williams_r"
  ],
  "sell_profile_features": [
    "m3_ga_cci_20",
    "m3_bb_pos",
    "m3_ga_keltner_pos",
    "m3_ga_mfi_14",
    "m3_RSI",
    "m3_ga_donchian_pos",
    "m5_bb_pos",
    "m5_ga_cci_20",
    "m5_ga_mfi_14",
    "m5_ga_keltner_pos",
    "m5_ga_donchian_pos",
    "m5_ga_cci_oversold",
    "m10_bb_pos",
    "m10_ga_cci_20",
    "m10_ga_donchian_pos",
    "m10_ga_keltner_pos",
    "m10_stoch_k",
    "m10_ga_ha_bull",
    "m15_bb_pos",
    "m15_ga_cci_20",
    "m15_ga_ha_bull",
    "m15_ga_keltner_pos",
    "m15_ga_donchian_pos",
    "m15_ga_williams_overbought",
    "m30_ga_ha_bull",
    "m30_ga_williams_overbought",
    "m30_bb_pos",
    "m30_ga_cci_20",
    "m30_ga_donchian_pos",
    "m30_ga_cci_overbought",
    "m60_ga_ha_bull",
    "m60_bb_pos",
    "m60_ga_cci_20",
    "m60_ga_williams_overbought",
    "m60_ga_keltner_pos",
    "m60_ga_cci_overbought",
    "m240_ga_ha_bull",
    "m240_ga_ha_trend_up",
    "m240_ga_chart_ha_trend",
    "m240_ga_cci_20",
    "m240_bb_pos",
    "m240_ga_keltner_pos",
    "d1_ga_ha_bull",
    "d1_ga_cci_20",
    "d1_ga_hammer",
    "d1_ga_cci_oversold",
    "d1_bb_pos",
    "d1_ga_ha_trend_up",
    "m10_ga_williams_overbought",
    "m10_ga_williams_r"
  ],
  "buy_gt_count": 304,
  "sell_gt_count": 150,
  "rule_count": 12,
  "rules": [
    {
      "rule_id": "buy_compound_top3",
      "side": "buy",
      "kind": "compound",
      "conditions": [
        {
          "col": "m10_bb_pos",
          "op": "between",
          "lo": 0.0,
          "hi": 0.20106701606099592
        },
        {
          "col": "m60_ga_ha_bull",
          "op": "eq_int",
          "value": 0
        },
        {
          "col": "m10_ga_cci_20",
          "op": "between",
          "lo": -196.75277202865237,
          "hi": -118.66969390129654
        }
      ],
      "profile_cols": [
        "m10_bb_pos",
        "m60_ga_ha_bull",
        "m10_ga_cci_20"
      ]
    },
    {
      "rule_id": "buy_compound_tight",
      "side": "buy",
      "kind": "compound_tight",
      "conditions": [
        {
          "col": "m10_bb_pos",
          "op": "between",
          "lo": 0.020269805294580265,
          "hi": 0.1573047482613718
        },
        {
          "col": "m10_ga_cci_20",
          "op": "between",
          "lo": -176.0610418573743,
          "hi": -134.25322440673844
        },
        {
          "col": "m5_bb_pos",
          "op": "between",
          "lo": 0.04935035261803711,
          "hi": 0.1678449416858898
        }
      ]
    },
    {
      "rule_id": "buy_contrast_m10_bb_pos",
      "side": "buy",
      "kind": "contrast",
      "conditions": [
        {
          "col": "m10_bb_pos",
          "op": "between",
          "lo": 0.020269805294580265,
          "hi": 0.1573047482613718
        },
        {
          "col": "m10_bb_pos",
          "op": "lte",
          "value": 0.8652920380018327
        }
      ]
    },
    {
      "rule_id": "buy_mtf_cross_all_tf",
      "side": "buy",
      "kind": "mtf_cross",
      "conditions": [
        {
          "col": "m3_ga_cci_20",
          "op": "between",
          "lo": -165.63146997929448,
          "hi": -94.58417734722393
        },
        {
          "col": "m5_bb_pos",
          "op": "between",
          "lo": 0.0007919203113804,
          "hi": 0.20459180244412847
        },
        {
          "col": "m10_bb_pos",
          "op": "between",
          "lo": 0.0,
          "hi": 0.20106701606099592
        },
        {
          "col": "m15_bb_pos",
          "op": "between",
          "lo": 0.0,
          "hi": 0.2273660357984182
        },
        {
          "col": "m30_ga_ha_bull",
          "op": "eq_int",
          "value": 0
        },
        {
          "col": "m60_ga_ha_bull",
          "op": "eq_int",
          "value": 0
        },
        {
          "col": "m240_ga_ha_bull",
          "op": "eq_int",
          "value": 0
        },
        {
          "col": "d1_ga_ha_bull",
          "op": "eq_int",
          "value": 0
        }
      ]
    },
    {
      "rule_id": "sell_compound_top3",
      "side": "sell",
      "kind": "compound",
      "conditions": [
        {
          "col": "m10_bb_pos",
          "op": "between",
          "lo": 0.8052954063070535,
          "hi": 1.0
        },
        {
          "col": "m60_ga_ha_bull",
          "op": "eq_int",
          "value": 1
        },
        {
          "col": "m10_ga_cci_20",
          "op": "between",
          "lo": 111.65828056686297,
          "hi": 181.1790204647342
        }
      ],
      "profile_cols": [
        "m10_bb_pos",
        "m60_ga_ha_bull",
        "m10_ga_cci_20"
      ]
    },
    {
      "rule_id": "sell_compound_tight",
      "side": "sell",
      "kind": "compound_tight",
      "conditions": [
        {
          "col": "m10_bb_pos",
          "op": "between",
          "lo": 0.8404304497544448,
          "hi": 0.9835509404754346
        },
        {
          "col": "m10_ga_cci_20",
          "op": "between",
          "lo": 121.46178461863994,
          "hi": 162.4704293245592
        },
        {
          "col": "m5_bb_pos",
          "op": "between",
          "lo": 0.8255534770185807,
          "hi": 0.9360858121763327
        }
      ]
    },
    {
      "rule_id": "sell_contrast_m10_bb_pos",
      "side": "sell",
      "kind": "contrast",
      "conditions": [
        {
          "col": "m10_bb_pos",
          "op": "between",
          "lo": 0.8404304497544448,
          "hi": 0.9835509404754346
        },
        {
          "col": "m10_bb_pos",
          "op": "gte",
          "value": 0.1345186926688078
        }
      ]
    },
    {
      "rule_id": "sell_mtf_cross_all_tf",
      "side": "sell",
      "kind": "mtf_cross",
      "conditions": [
        {
          "col": "m3_ga_cci_20",
          "op": "between",
          "lo": 71.08020816708225,
          "hi": 152.0239279574577
        },
        {
          "col": "m5_bb_pos",
          "op": "between",
          "lo": 0.7812942210429725,
          "hi": 0.979827466617936
        },
        {
          "col": "m10_bb_pos",
          "op": "between",
          "lo": 0.8052954063070535,
          "hi": 1.0
        },
        {
          "col": "m15_bb_pos",
          "op": "between",
          "lo": 0.8266597207479214,
          "hi": 1.0
        },
        {
          "col": "m30_ga_ha_bull",
          "op": "eq_int",
          "value": 1
        },
        {
          "col": "m60_ga_ha_bull",
          "op": "eq_int",
          "value": 1
        },
        {
          "col": "m240_ga_ha_bull",
          "op": "eq_int",
          "value": 1
        },
        {
          "col": "d1_ga_ha_bull",
          "op": "eq_int",
          "value": 1
        }
      ]
    },
    {
      "rule_id": "gt_model_buy_zigzag_bb",
      "side": "buy",
      "kind": "gt_model",
      "logic": "and",
      "conditions": [
        {
          "col": "gt_buy_signal",
          "op": "eq_int",
          "value": 1
        }
      ],
      "gt_spec": "trough_zigzag + bb_pos <= GT_BUY_BB_MAX"
    },
    {
      "rule_id": "gt_model_buy_trough_local",
      "side": "buy",
      "kind": "gt_model",
      "logic": "and",
      "conditions": [
        {
          "col": "gt_trough_local",
          "op": "eq_int",
          "value": 1
        },
        {
          "col": "bb_pos",
          "op": "lte",
          "value": 0.45
        }
      ],
      "gt_spec": "local trough + bb filter"
    },
    {
      "rule_id": "gt_model_sell_zigzag_peak",
      "side": "sell",
      "kind": "gt_model",
      "logic": "and",
      "conditions": [
        {
          "col": "gt_sell_signal",
          "op": "eq_int",
          "value": 1
        }
      ],
      "gt_spec": "major swing peak (ZigZag)"
    },
    {
      "rule_id": "gt_model_sell_peak_local",
      "side": "sell",
      "kind": "gt_model",
      "logic": "and",
      "conditions": [
        {
          "col": "gt_peak_local",
          "op": "eq_int",
          "value": 1
        }
      ],
      "gt_spec": "local high extremum"
    }
  ]
}