C#股票策略一二

//information
//Console.WriteLine("Hello, World!");
//double[] price = new double[] { 1.10, 1.12, 1.15, 1.16, 1.17, 1.18, 1.17, 1.15, 1.16, 1.17, 1.18 };

//double[] ma = MovingAverage(price, 3); // 计算3 日均线
//double lastPrice = price[price.Length - 1];
//double lastMA = ma[ma.Length - 1];
//double prevMA = ma[ma.Length - 2];

//if (lastPrice > lastMA && prevMA > lastMA) // 金叉买入
//{
//    Console.WriteLine("购买:价格={0},均线={1}", lastPrice, lastMA);
//    // 交易相关代码
//    Console.Read();
//}
//else if (lastPrice < lastMA && prevMA < lastMA) // 死叉卖出
//{
//    Console.WriteLine("卖出:价格={0},均线={1}", lastPrice, lastMA);
//    // 交易相关代码
//    Console.Read();
//}
double[] priceHistory = new double[] { 1.10, 1.12, 1.15, 1.16, 1.17, 1.18, 1.17, 1.15, 1.16, 1.17, 1.18 };
//List<double> priceHistory = new List<double>(); // 假设已经获取了市场历史价格
double price = 1.15; // 假设当前市场价格为1.15美元

// 计算RSI指标
double rsi = RSI(priceHistory, 14);

if (rsi >= 70) // 超买信号,卖出头寸
{
    Console.WriteLine("卖出:价格={0} 美元,RSI={1}", price, rsi);
    // 交易相关代码
    Console.Read();
}
else if (rsi <= 30) // 超卖信号,买入头寸
{
    Console.WriteLine("购买:价格={0} 美元,RSI={1}", price, rsi);
    // 交易相关代码
    Console.Read();
}

// 计算移动平均线
//static double[] MovingAverage(double[] data, int period)
//{
//    double[] ma = new double[data.Length];

//    for (int i = period - 1; i < data.Length; i++)
//    {
//        double sum = 0;
//        for (int j = i - period + 1; j <= i; j++)
//        {
//            sum += data[j];
//        }
//        ma[i] = sum / period;
//    }

//    return ma;
//}

// 计算RSI指标
static double RSI(double[] prices, int period)
{
    double gainSum = 0;
    double lossSum = 0;

    // 计算每日涨跌幅
    for (int i = 1; i < prices.Length; i++)
    {
        double diff = prices[i] - prices[i - 1];
        if (diff > 0)
        {
            gainSum += diff;
        }
        else
        {
            lossSum += Math.Abs(diff);
        }
    }

    // 计算平均涨跌幅和RSI
    double avgGain = gainSum / period;
    double avgLoss = lossSum / period;
    double rs = avgGain / avgLoss;
    double rsi = 100 - (100 / (1 + rs));

    return rsi;
}
View Code

1简单的MA均线交易策略——当价格上叉均线时开仓买入,当价格下叉均线时平仓卖出。该策略可以通过更改均线计算的天数、交易的资产类别和交易规则等参数进行扩展和优化

2策略利用相对强弱指数(RSI)来判断市场是否处于超买/超卖状态。当RSI指标超过70时,市场处于超买状态,应该进行卖出操作;当RSI指标低于30时,市场处于超卖状态,应该进行买入操作。

相对强弱指数(Relative Strength Index,RSI)是一种用于分析市场趋势的技术指标,由J. Welles Wilder于1978年提出。RSI指标可以显示市场的超买超卖情况,判断市场当前的价格是否已经过高或过低,以帮助交易者进行合理的买卖决策。

RSI指标通常使用以14日为计算期间,对股票上涨日和下跌日的涨幅和跌幅平均值进行计算,由此得到一个介于0~100之间的数值。一般来说,RSI值大于70时被认为是超买信号,暗示市场价格已经过高,可能会出现回调或下跌;RSI值小于30时被认为是超卖信号,暗示市场价格已经过低,可能会出现反弹或上涨。

值得注意的是,RSI指标只是一种辅助工具,较为可靠的交易决策应该建立在准确的市场分析和深入的研究之上,不能仅凭RSI等指标进行决策。

  1. 均线交叉策略:当短期均线上穿长期均线时,买入;当短期均线下穿长期均线时,卖出。

  2. 动量策略:根据资产的涨跌幅度来判断买入或卖出的时机,比如当涨幅超过一定阈值时买入。

  3. RSI策略:根据RSI指标的超买超卖情况来决定买入或卖出的时机。

  4. MACD策略:根据MACD指标的金叉和死叉情况来决定买入或卖出的时机。

  5. 布林带策略:根据布林带指标的突破或回归情况来决定买入或卖出的时机。

  6. 突破策略:当价格突破一定的支撑或阻力水平时,买入或卖出。

  7. 止损策略:设定一定的止损点,当价格达到止损点时,自动卖出。

  8. 追踪止损策略:根据价格的走势,动态调整止损点。

  9. 交叉验证策略:使用交叉验证的方法来评估和优化交易策略的参数。

  10. 随机策略:随机选择买入或卖出的股票,测试交易策略的盈亏情况。

  11. 收益逆转策略:根据过去一段时间的收益率排名来选择买入或卖出的股票。

  12. 收益与波动率比例策略:选取收益率与波动率比例最高的股票进行交易。

  13. 套利策略:利用不同市场或产品之间的价格差异来进行买卖,尝试获取利润。

  14. 动态加权平均策略:根据市场条件调整不同资产的权重,实现动态的投资组合平衡。

  15. 多因子模型策略:基于多个因子的组合,制定投资决策。例如,利用市值、盈利能力、估值等因子来选择股票。

       单根检验策略:利用统计学单根检验方法来判断时间序列               

        CFA:

  1. AnalystPrep: https://analystprep.com/
  2. Kaplan Schweser: https://www.schweser.com/cfa
  3. CFA Institute: https://www.cfainstitute.org/en/programs/cfa/curriculum/study-sessions
  4. Wiley Efficient Learning: https://www.efficientlearning.com/cfa/
  5. AdaptPrep: https://www.adaptprep.com/cfa
  6. FinQuiz: https://www.finquiz.com/
  7. 7AnalystNotes: https://www.analystnotes.com/

       网站提供了量化交易平台、开发环境、论坛、文档和数据等资源,帮助交易员和开发者使用C#编写和测试交易策略:

     

  1. QuantConnect: https://www.quantconnect.com/
  2. Lean Engine: https://www.quantconnect.com/lean
  3. AlgoTrader: https://www.algotrader.com/
  4. QuantConnect Forum: https://www.quantconnect.com/forum/
  5. QuantConnect Documentation: https://www.quantconnect.com/docs/
  6. AlgoSeek: https://www.algoseek.com/
  7. RightEdge: http://www.rightedgesystems.com/
  8. NinjaTrader: https://ninjatrader.com/

Tachyon: https://tachyon-analytics.com/

Algorithmic Trading Platform - QuantConnect.com

 QuantConnect/Lean: Lean Algorithmic Trading Engine by QuantConnect (Python, C#) (github.com)

 

posted @ 2023-08-08 15:01  有翅膀的大象  阅读(164)  评论(0编辑  收藏  举报