我创建了一个程序,该程序生成股票的买卖信号。我还创建了用于测试不同信号并提供每笔交易 yield 的逻辑。

下一步是长时间模拟该策略及其规则。所有信息都将导出到文本文件,并导入到SQL Server数据库中的表中。我意识到我需要声明许多变量,例如StartCapitalCurrentCapitalNumberOfPositionsPositionsLeft。其中一列名为BuyPrice,指示何时购买以及以什么价格购买,发生时NumberOfPositions应减去1。
SellPrice列指示何时出售以及以什么价格出售,发生时NumberOfPositions需要加一。 NumberOfPositions的最大值应为5,最小值为0。所需的结果是查看CurrentCapital的展开方式。

我非常感谢任何输入和某种形式的SQL代码来启动表单。

最佳答案

还有另一种循环方式。我已经看到很多答案会使计数器增加1。但是,根据我的经验,不能保证您的ID在数据集中不会有间隔。

这是我经常使用的解决方案:

declare @idColumn int

select @idColumn = min( TableID ) from Table

while @idColumn is not null
begin
    /*
        Do all the stuff that you need to do
    */
    select @idColumn = min( TableID ) from Table where TableID > @idColumn
end

关于sql遍历表中的每一行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28506747/

10-10 14:48