精华内容
下载资源
问答
  • 交易算法 该存储库包含我使用Quantopian IDE创建的自定义交易算法: 转到并复制/粘贴任何算法进行测试! 请享用! ^ _ ^ 多因素模型 是该项目,我全身心地投入到创建一次我学会了如何使用Python基于传统金融理论来...
  • 量化交易算法

    2019-09-29 01:30:31
    三种不同交易算法: 冲击驱动型算法交易:降低对价格的影响 成本驱动型算法交易:降低总体交易成本 机会导向型算法交易:利用有利的市场条件 转载于:https://www.cnblogs.com/bawu/p/9705719.html...

     

    https://mp.weixin.qq.com/s/ZViOuXrCchjN60Cl4sypjQ

    三种不同交易算法:

    冲击驱动型算法交易:降低对价格的影响

    成本驱动型算法交易:降低总体交易成本

    机会导向型算法交易:利用有利的市场条件

    转载于:https://www.cnblogs.com/bawu/p/9705719.html

    展开全文
  • 马门 交易算法Java库
  • Algo工具 交易算法策略和工具
  • Node.js的简单股票和期权交易算法
  • StockTrader:使用tensorflow构建的股票交易算法
  • 认知无线电网络中基于内存的频谱交易算法
  • GreenDragon量化交易算法研发平台-GreenDragon MATLAB量化交易回测平台介绍.pdf 本帖最后由 tigerpan 于 2013-3-26 20:55 编辑 用MATLAB做了一个简单的期货交易算法研发平台,主要功能是检验信号、数据回测和...
  • 我们引入了一种新的算法投资管理方法,该方法... 这种设计自动交易算法的新方法是一种用于建立新型投资策略的简化方法,该策略不仅可以产生利润,而且还可以为金融市场提供流动性,并且对管理的资产数量没有先验限制。
  • 币安技术交易算法 该项目正在开发一种与Binance一起使用的基于技术的交易算法。 性能 要求 Binance API密钥 Python 3.5 PostgreSQL 9.6 我的设定 Debian 9.4 Python 3.5 Spyder IDE PostgreSQL 9.6 PgAdmin 4 ...
  • 动量交易 使用动量的非常简单的交易算法
  • 为了提高认知无线网络中频谱共享所产生的效益,研究了认知网络的频谱管理技术,提出了一种基于代理的频谱交易算法。该方法以代理商作为频谱交易和分配的中介,减轻了多主用户、多次用户频谱交易过程中的系统开销;在...
  • 一个个人python交易算法项目的回购。 该项目基于两个Struts,回溯测试和实时交易 依赖关系和使用的技术 OAuth 1和2 熊猫(主要是dataFrame) Tkinter LightStreamer API(IGmarkets服务器) IGMarkets Rest API...
  • 交易算法 TradeAlgo是一种股票交易算法,可对从开放市场到封闭市场的股票下达定单。 我开发此产品是为了帮助我对2021年1月成立的股票交易充满热情,并渴望成为一名量化交易员。 它是如何工作的? TradeAlgo使用网络...
  • GreenDragon量化交易算法研发平台-TigerPlatform_x86.rar 本帖最后由 tigerpan 于 2013-3-26 20:55 编辑 用MATLAB做了一个简单的期货交易算法研发平台,主要功能是检验信号、数据回测和参数优化。做得很粗糙,...
  • GreenDragon量化交易算法研发平台-GreenDragon_p.rar 本帖最后由 tigerpan 于 2013-3-26 20:55 编辑 用MATLAB做了一个简单的期货交易算法研发平台,主要功能是检验信号、数据回测和参数优化。做得很粗糙,希望...
  • 股票交易算法

    2020-12-29 10:41:11
    如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。 注意:你不能在买入股票前卖出股票。 示例 1: 输入: [7,1,5,3,6,4] 输出: 5 解释: 在第 2 天(股票价格 = 1...

    买卖股票的最佳时机(一次交易)

    给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。

    如果你最多只允许完成一笔交易(即买入和卖出一支股票一次),设计一个算法来计算你所能获取的最大利润。

    注意:你不能在买入股票前卖出股票。

    示例 1:

    输入: [7,1,5,3,6,4]
    输出: 5
    解释: 在第 2 天(股票价格 = 1)的时候买入,在第 5 天(股票价格 = 6)的时候卖出,最大利润 = 6-1 = 5 。
    注意利润不能是 7-1 = 6, 因为卖出价格需要大于买入价格;同时,你不能在买入前卖出股票。
    示例 2:

    输入: [7,6,4,3,1]
    输出: 0
    解释: 在这种情况下, 没有交易完成, 所以最大利润为 0。

       function maxProfitAll($prices)
        {
        	//$data[$i][0] 表示第i天没持有
        	//$data[$i][1] 表示第i天持有
        	$data = [];
        	$n = count($prices);
        	if($n < 1){
        		return 0;
        	}
        	for ($i=0; $i < $n; $i++) {
        	 	if($i == 0){
        	 		$data[$i][0] = 0;
        	 		$data[$i][1] = -$prices[$i];
        	 		continue;
        	 	}
        	 	$data[$i][0] = max($data[$i-1][0], ($data[$i-1][1] + $prices[$i]));
        	 	$data[$i][1] = max($data[$i-1][1], -$prices[$i]);
        	}
    
        	return $data[$n-1][0];
    
        }
    

    买卖股票的最佳时机 II(多次)

    给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。

    设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。

    注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。

    示例 1:

    输入: [7,1,5,3,6,4]
    输出: 7
    解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。
    随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6-3 = 3 。
    示例 2:

    输入: [1,2,3,4,5]
    输出: 4
    解释: 在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。
    注意你不能在第 1 天和第 2 天接连购买股票,之后再将它们卖出。
    因为这样属于同时参与了多笔交易,你必须在再次购买前出售掉之前的股票。
    示例 3:

    输入: [7,6,4,3,1]
    输出: 0
    解释: 在这种情况下, 没有交易完成, 所以最大利润为 0。

    提示:

    1 <= prices.length <= 3 * 10 ^ 4
    0 <= prices[i] <= 10 ^ 4

    
        function maxProfitManyChange($prices)
        {
    
        	//$data[$i][0] 表示第i天没持有
        	//$data[$i][1] 表示第i天持有
    		$data = [];
    		$n = count($prices);
    		if($n < 1){
    			return 0;
    		}
    		for ($i=0; $i < $n; $i++) { 
    			if($i == 0){
    				$data[$i][0] = 0;
    				$data[$i][1] = -$prices[$i];
    				continue;
    			}
    
    			$data[$i][0] = max($data[$i-1][0], $data[$i-1][1] + $prices[$i]);
    			$data[$i][1] = max($data[$i-1][1], $data[$i-1][0] - $prices[$i]);
    		}
    
    		return $data[$i-1][0];
        }
    

    买卖股票的最佳时机 III

    给定一个数组,它的第 i 个元素是一支给定股票第 i 天的价格。

    设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易(多次买卖一支股票)。

    注意:你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。

    示例 1:

    输入: [7,1,5,3,6,4]
    输出: 7
    解释: 在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。
    随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6-3 = 3 。
    示例 2:

    输入: [1,2,3,4,5]
    输出: 4
    解释: 在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。
    注意你不能在第 1 天和第 2 天接连购买股票,之后再将它们卖出。
    因为这样属于同时参与了多笔交易,你必须在再次购买前出售掉之前的股票。
    示例 3:

    输入: [7,6,4,3,1]
    输出: 0
    解释: 在这种情况下, 没有交易完成, 所以最大利润为 0。

        function maxProfit($prices)
        {
    
            $data = [];
            $n = count($prices);
            if($n < 1){
                return 0;
            }
    
            $cash = 0;
            $hold = -$prices[0];
    
            $preCash = $cash;
            $preHold = $hold;
            for ($i=1; $i < $n; $i++) { 
                $cash = max($preCash, $preHold + $prices[$i]);
                $hold = max($preHold, $preCash - $prices[$i]);
    
                $preCash = $cash;
                $preHold = $hold;
            }
    
            return $cash;
    
        }
    

    买卖股票的最佳时机 III(最多可以完成 两笔 交易)

    给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。
    设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。
    注意: 你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。
    示例 1:
    输入: [3,3,5,0,0,3,1,4]
    输出: 6
    解释: 在第 4 天(股票价格 = 0)的时候买入,在第 6 天(股票价格 = 3)的时候卖出,这笔交易所能获得利润 = 3-0 = 3 。
    随后,在第 7 天(股票价格 = 1)的时候买入,在第 8 天 (股票价格 = 4)的时候卖出,这笔交易所能获得利润 = 4-1 = 3 。
    示例 2:
    输入: [1,2,3,4,5]
    输出: 4
    解释: 在第 1 天(股票价格 = 1)的时候买入,在第 5 天 (股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5-1 = 4 。
    注意你不能在第 1 天和第 2 天接连购买股票,之后再将它们卖出。
    因为这样属于同时参与了多笔交易,你必须在再次购买前出售掉之前的股票。
    示例 3:
    输入: [7,6,4,3,1]
    输出: 0
    解释: 在这个情况下, 没有交易完成, 所以最大利润为 0。

        function maxProfitMax2($prices)
        {
    
      /*      $data = [];
            $n = count($prices);
            if($n < 1){
                return 0;
            }
    
            $cash = 0;
            $hold = -$prices[0];
    
            $preCash = $cash;
            $preHold = $hold;
            for ($i=1; $i < $n; $i++) { 
                $cash = max($preCash, $preHold + $prices[$i]);
                $hold = max($preHold, $preCash - $prices[$i]);
    
                $preCash = $cash;
                $preHold = $hold;
            }
    
            return $cash;*/
            $data = [];
            $maxNum = 2;
            $n = count($prices);
            $data[0][0][0] = 0;
            $data[0][0][1] = -$prices[0];
            for ($i=0; $i < $n; $i++) { 
                for ($j=$maxNum; $j >= 1; $j--) { 
                    if($i == 0){
                        $data[$i][$j][0] = 0;
                        $data[$i][$j][1] = -$prices[0];
                        continue;
                    }
                    $data[$i][$j][0] = max($data[$i-1][$j][0], $data[$i-1][$j][1] + $prices[$i]);
                    $data[$i][$j][1] = max($data[$i-1][$j][1], $data[$i-1][$j-1][0] - $prices[$i]);
                }
            }
    
            return $data[$n-1][$maxNum][0];
    
        }
    

    买卖股票的最佳时机 IV(指定次数交易)

    给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。
    设计一个算法来计算你所能获取的最大利润。你最多可以完成 k 笔交易。
    注意: 你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。

    示例 1:
    
    输入: [2,4,1], k = 2
    输出: 2
    解释: 在第 1 天 (股票价格 = 2) 的时候买入,在第 2 天 (股票价格 = 4) 的时候卖出,这笔交易所能获得利润 = 4-2 = 2 。
    示例 2:
    
    输入: [3,2,6,5,0,3], k = 2
    输出: 7
    解释: 在第 2 天 (股票价格 = 2) 的时候买入,在第 3 天 (股票价格 = 6) 的时候卖出, 这笔交易所能获得利润 = 6-2 = 4 。
         随后,在第 5 天 (股票价格 = 0) 的时候买入,在第 6 天 (股票价格 = 3) 的时候卖出, 这笔交易所能获得利润 = 3-0 = 3 
    
       public function maxProfitTimes($k, $prices)
        {
    
            $data = [];
            $n = count($prices);
            if($n < 1 || $k < 1){
                return 0;
            }
    
            if($k > $n/2){//交易次数超过一天两次就认为是无穷大
                return $this->maxProfit_k_inf($prices);
            }
    
            for ($i=0; $i < $n; $i++) { 
                for ($j=$k; $j >= 1; $j--) { 
                    if($i == 0){
                        $data[$i][$j][0] = 0;
                        $data[$i][$j][1] = -$prices[0];
                        continue;
                    }
                    $data[$i][$j][0] = max($data[$i-1][$j][0], $data[$i-1][$j][1] + $prices[$i]);
                    $data[$i][$j][1] = max($data[$i-1][$j][1], $data[$i-1][$j-1][0] - $prices[$i]);
                }
            }
    
            return $data[$n-1][$k][0];
        }
    
        public function maxProfit_k_inf($prices)
        {
            $data = [];
            $n = count($prices);
            for ($i=0; $i < $n; $i++) { 
                if($i == 0){
                    $data[$i][0] = 0;
                    $data[$i][1] = -$prices[0];
                    continue;
                }
                $data[$i][0] = max($data[$i-1][0], $data[$i-1][1] + $prices[$i]);
                $data[$i][1] = max($data[$i-1][1], $data[$i-1][0] - $prices[$i]);
            }
            return $data[$i-1][0];
        }
    

    最佳买卖股票时机含冷冻期

    冻结期
    * 给定一个整数数组,其中第 i 个元素代表了第 i 天的股票价格 。​

    设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票):
    
    你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)。
    卖出股票后,你无法在第二天买入股票 (即冷冻期为 1 天)。
    示例:
    
    输入: [1,2,3,0,2]
    输出: 3 
    解释: 对应的交易状态为: [买入, 卖出, 冷冻期, 买入, 卖出]
    
        public function maxProfitWithCooldown($prices)
        {
            $n = count($prices);
            if($n < 1){
                return 0;
            }
    
            $a1 = -$prices[0];//买入
            $a2 = 0;//卖出
            $a3 = 0;//冻结
            for ($i=0; $i < $n; $i++) { 
                $b1 = max($a1, $a3 - $prices[$i]);//买入
                $b2 = $a1 + $prices[$i];
                $b3 = max($a2, $a3);
                $a1 = $b1;
                $a2 = $b2;
                $a3 = $b3;
            }
    
            return max($a2, $a3);
        }
    

    买卖股票的最佳时机含手续费

    给定一个整数数组 prices,其中第 i 个元素代表了第 i 天的股票价格 ;非负整数 fee 代表了交易股票的手续费用。
    你可以无限次地完成交易,但是你每笔交易都需要付手续费。如果你已经购买了一个股票,在卖出它之前你就不能再继续购买股票了。
    返回获得利润的最大值。
    注意:这里的一笔交易指买入持有并卖出股票的整个过程,每笔交易你只需要为支付一次手续费。
    示例 1:
    输入: prices = [1, 3, 2, 8, 4, 9], fee = 2
    输出: 8
    解释: 能够达到的最大利润:
    在此处买入 prices[0] = 1
    在此处卖出 prices[3] = 8
    在此处买入 prices[4] = 4
    在此处卖出 prices[5] = 9
    总利润: ((8 - 1) - 2) + ((9 - 4) - 2) = 8.
    注意:
    0 < prices.length <= 50000.
    0 < prices[i] < 50000.
    0 <= fee < 50000.

        public function maxProfitWithFee($prices, $fee)
        {
            $n = count($prices);
            if($n < 1){
                return 0;
            }
    
            $cash = 0;
            $hold = -$prices[0];
    
            for ($i=0; $i < $n; $i++) { 
                $cash = max($cash, $hold + $prices[$i] - $fee);
                $hold = max($hold, $cash - $prices[$i]);
            }
    
            return $cash;
        }
    
    展开全文
  • ZI DCT0 这是ZI DCT0交易算法的Python实现。 该算法的解释超出了本文档的范围。 使用风险自负。 源代码 安装 使用pip安装库 pip install zi_dct0 用法 用法可以在test页中找到
  • 高频交易算法研发心得--WAVT指标(Warensoft交易量趋势指标)算法及应用 注:WAVT指标由Warensoft(王宇)原创。 前面聊了一系列的常见应用指标,包括短线、长线的指标,并且也无耐的指出每种指标的问题。当然每写...

    高频交易算法研发心得--WAVT指标(Warensoft交易量趋势指标)算法及应用

     

    注:WAVT指标由Warensoft(王宇)原创。

    前面聊了一系列的常见应用指标,包括短线、长线的指标,并且也无耐的指出每种指标的问题。当然每写一篇文章,也都是一次学习过程。经过一年多的学习研究,笔者也自创了一个应用指标,并将其命名为WAT指标,本次让我们一起来探讨一下,欢迎大家扔砖!

    1.指标定义

    WAVTWarensoft交易量趋势(Warensoft Volume Trend,是根据一定时期内交易量描述出买卖趋势的指标量,适合于中长期交易。WAVT指标表达形式,如下所示:

     

     

     

     

    如图所示,WAVT指标包括两种显示形式,一个是曲线图,一个是方波图,方波图是由曲线图计算得到的。其中,曲线图可以较为直观的显示当前行情的变化趋势,但是不便于量化交易;而方波图是对曲线图进行了一次数值变换,适合计算机进行量化交易。

    2.趋势线的计算

    我相信有很多程序猿和我一样,一直都希望通过行情变化曲线的极值点,来捕获最合理的买卖时机。这里存在两个技术难点:

    • 曲线是否平滑(曲线不平滑,就难以确定极值点)
    • 曲线的末端是否稳定(不稳定,就会常常出现误判)

    对于趋势线的计算,最简单的想法是利用K线进行绘制。由于K线是市场的最直接反映,所以其波动性会比较大,因此,以K线作为数据源的话,整个图像中出现的M头或W底会非常的多。

    前段时间,研究了一下OBV指标,同时,有一个10多年的老股民朋友(也是资深软件工程师)告诉我说:“可以利用交易量来模拟行情”。本人大受启发,因此,WAVT的趋势线的数据源是来自市场交易量的。

    前一篇文章中(谈RSI指标),我们说过经典的MACD以及MA均线,都是从固定周期的价格作为判读的指导思想,并将价格进行平滑处理,然后得到可参考的判读结果。排除个人经验外,这些计算方法从方法论层面上来说是一种数值化判定方法(即:先有数据,再判定结果)。

    然而基于交易量的OBV指标,则是从交易量的角度,分析人们的交易信心(信心是无法量化的),因此,OBV指标是带有预测性。另外,相同周期的OVB指标要比MA指标更靠近真实行情,同时OBV的曲线要比MA的曲线平滑得多!

    咱们书归正文,WAVT指标中的趋势线算法描述如下:

     

    public List<TimeValuePair> GetWAVTTrendLine()
    
            {
    
                //1.首先获取带有Vol值的K线数据。
    
                var kline = GetKline();
    
                //2.计算OBV指标值,注意这里使用40做为平滑周期
    
                var obv = GetOBV(kline,40);
    
                //3.获取极值点采样,注意这里需要进行两次采样,因此参数为2
    
                var peeks = GetPeekPoints(obv, 2);
    
                //4.因为极值点数据,在时间上是不连续的,
    
                //因此,需要对极值点数据进行线性插值,以保证每个时间点上都有数据
    
                peeks = InterplotData(peeks);
    
     
    
     
    
            }

     

    经过上面4个步骤,我们就可以得到WAVT趋势线。具体算法比较复杂,看官们可以自己实现,或者调用Warensoft Stock Service Client来实现。其图像如下所示:

     

     

    3.方波图的计算

    趋势线的特点是比较直观,适合人眼来观察行情,但是不便于计算机量化处理。下面我们来进行方波化变换,以便计算机量化。其过程如下:

    //1.计算WAVT趋势线
    
                var trendLine = GetWAVTTrendLine();
    
                //2.所有数据减去前一个数值,得到方波值
    
                var value = trendLine[i] - trendLine[i - 1];
    
                //3.对方波数据进行噪声滤波,以去掉干扰数据
    
                value = MakeFilter(value);

     

    经过上面3个步骤,我们就可以得到WAVT方波图,其图像如下所示:

     

     

     

    4.应用方式

    通过前面的算法描述,我们不难发现,方波图可以较好的把握大体的买卖时机,即:

    • 当数据由负值向上穿越0线时,可以买入
    • 当数据由正值向下穿越0线时,可以卖出

    如下图所示:

     

    5.总结

    本指标算法尚在测试中,应用需要谨慎。

    WAVT指标可以用于中长期的交易,但是只能大体来把握趋势,和其他技术指标一样,WAVT指标存在一定的延时性,在应用的时候会错过最最低值和最最高值。

     

    转载于:https://www.cnblogs.com/warensoft/p/6289740.html

    展开全文
  • 使用机器学习来计算每日交易的入场点和存在点的股票交易算法 大纲 业务问题: 算法交易使用机器学习模型来预测何时在股票市场中买卖股票。 对股票价格和其他金融工具产生准确的预测或预测是所有投资银行和对冲基金...
  • 交易算法 这是一堆代码,我正在尝试学习Python编码的来龙去脉。 特别是API,CSV / TXT文件,Redis数据库和Pylivetrader。 我也尝试将这些算法迁移到其他编程语言中。 到目前为止,只有Golang和JavaScript。 到目前...
  • 波动套利是一种利用价格波动的交易算法。 基本思想是将投资组合不断重新平衡至50-50的比率。 考虑到市场是一场“公平游戏”,价格不会为零,并且市场价格会波动,因此该算法比买入并持有策略具有更高的期望值。 该...
  • 高频交易算法研发心得—最稳妥的低风险交易策略 注意:本文章的算法策略适用于可借资源的市场(数字币、贵金属),不适用于股票 很多人在进行交易的时候,都喜欢一直盯着大盘看,为什么呢?原因很简单,大家都在...

    高频交易算法研发心得—最稳妥的低风险交易策略

    注意:本文章的算法策略适用于可借资源的市场(数字币、贵金属),不适用于股票

     

    很多人在进行交易的时候,都喜欢一直盯着大盘看,为什么呢?原因很简单,大家都在关心着当前的行情有没有大涨大落,正常情况下(用货币来买入交易物)没有人会害怕行情大涨,但是一旦出现了极端情况,行情一路大跌,很多人会血压升高,满面通红。

    咱们书归正文,很多人都在寻找能提前预测大幅下跌的算法,但是真的很难。那么有没有一种可以不出现大起大落的行情,可以稳稳当当挣钱呢?答案是有的,这次我们就来聊聊“交易物对冲策略”(这个方法根本算不上什么算法)。

    1. 前提条件

    交易物对冲算法并不是在所有的交易市场都适用,其条件如下:

    • 只适用于提供融资功能的交易市场(如数字币,贵金属等),用户可以借入交易物(不是货币)。
    • 不适用于股票市场!
    • 交易市场必须提供两种以上可以交易物,比如在一个数字币市场中,可以交易比特币和莱特币;一个贵金属交易所,可以交易白银和铜。
    • 两种交易物之间的单价差要在50%以上。
    • 最好能自动化完成交易,手动交易较为繁琐。

    2. 策略描述

    对于金融交易的行家来讲,对冲不是什么新鲜玩意儿,比如,很多网站都提供多不同比特币交易市场的报价,用户可以在一个市场低价买入,另一个市场高价卖出,这就是所谓的“搬砖”。这种市场间的“对冲”受到转账费用、网络延时等问题的影响,往往利润比较单薄。我们这里说的“交易物对冲”指的是在同一个市场中,不同种交易物之间的对冲。下面我们以比特币(BTC)和以太坊币(ETH)为例,进行策略说明,该策略的流程图如下:

     

     

     

     

    • 第一步:融资

    前提条件中,我们说过,两种交易物的单价减值需要在50%以上,我们选取的BTC和ETH正好满足这个条件。

    这一步中的融资,指的是为单价较低的交易物进行借物操作(本例中是为ETH进行借币),不同的市场可以借的数量不一样,有的市场是5倍,有的是3倍。

    • 第二步:绘制对冲行情线

    注意,此步骤需要软件辅助,如果不怕麻烦,也可以使用Excel手动计算。

    所谓的“对冲行情线”就是指每分钟“高单价交易物”的价格与“低单价交易物”的价格的比例曲线。同时,为了能够进行量化交易,需要添加该曲线的SMA(10)和SMA(120)曲线。其伪码如下:

    //获取BTC K线
    
                                var klinebtc = GetCNBTC("btc", "1min", 1000);
    
                               
    
                                //获取ETH K线
    
                                var klineltc = CNBTC("eth", "1min", 1000);
    
                                List<TimeValuePair> bls = new List<TimeValuePair>();
    
                                for (int i = 0; i < klinebtc.Count; i++)
    
                                {
    
                                    //计算每分钟中间价的比例
    
                                    bls.Add(new TimeValuePair() { DateTime = klinebtc[i].Time, Value = klinebtc[i].Middle / klineltc[i].Middle });
    
                                }
    
                               
    
                                //计算短周期SMA
    
                                var smabl10 = GetSMALine(bls, 10);
    
                                //计算长周期SMA
    
                                var smabl120 = GetSMALine(bls, 120);

     

    经过前面的计算,我们可以得到如下曲线:

     

     

    • 第三步:交易

    当短周期均线向上穿越长周期均线时:

    1>     卖出所有借的交易物(本文ETH)。

    2>     按卖出的总钱数(注意,不是你所有的钱),买入另一种高单价交易物(本文BTC)。

    当长周期均线向下穿越短周期均线时:

    1>     卖出所有的高单价交易物(本文BTC)。

    2>     你借了多少交易物(本文ETH),就买入多少,注意一定不要买多了,也不能买少了!!!!

    • 第四步:看看你挣了多少钱

    请看官自行计算

    3. “交易物对冲”策略的原理论证

    下面我们从2方面来对该策略进行论证:

    • 行情稳定性

    本质上来讲,行情是否稳定,直接决定了您的资金是否安全,当然,波动越大的市场,潜在的利润也越大(换句不好听的话就是风险也越大)。经常看大盘的朋友们不难发现,无论是比特币,还是股票,如果整体行情大涨,那么大多数的数字币或单股都会跟着大涨,大跌时也亦然。

    这就好比美元对黄金大跌,那么人民币一定会受影响大跌一番。其实道理很简单,每一个市场背后都存在着大量的资金进行支撑。一旦某一个币种出现大幅度下跌,大财团的操盘手们就会马上开始行动,进行资金转移。因此,我们会受到大财团庇护,不同交易物价格比例会相对稳定。以2017年初的比特币大波动行情为例,就可以对此进行印证,如下所示:

     

     

     

     

     

    如图不难看出,2017年1月5日基本上大多数的数字在同一时刻出现了大跌。

    • 交易物行情无关性

    看到上面的比特币行情,我相信大多弄比特币的朋友都会记忆由新的,行情突然之间下跌了快3000块钱,真是让人喘不上来气!

    但是如果应用了“交易物对冲策略”,看官们会发现,无论大盘涨到了三十三层天外天,还是,还下跌到了十八层地狱,都和你没有关系,因为,用一句话来描述该策略就是:

    “行情是多少钱,我不关心,我关心的是,卖了BTC,能不能换回比我借的ETH多!”。

    “交易物对冲策略”本质上是将交易物的价格涨跌转移给了市场提供商(因为你的币是向市场借的),你只要保证借了多少还多少就行了。以上图中的大跌行情为例(较为极端的行情),我们可以计算一下:

    时机

    BTC价格

    ETH价格

    比例

    2017-1-5 15:00

    8848

    87.89

    100.6713

    2017-1-7 12:30

    5812

    67.03

    86.707

    跌幅

    34%

    24%

    14%

    2017-1-18 11:36

    6170

    70.56

    87

    上述表格可以表明,使用对冲比例行情时,跌幅是最小的。另外,我们也可以从上表中发现以下几个特点:

    1>     要涨,大家一起涨,反之亦然。

    2>     单价高的交易物涨的快,下跌的也快。

    4.数据说明

     

    如上图所示的一次交易过程,买入点为84,卖出点为92,那么这两个数据意味着什么呢?

    首先,您在买入时,一个比特币可以兑换84个ETH。

    到了卖出点时,您可以用一个比特币兑换92个ETH。

    这样,您就挣了8个ETH

    5. 总结

    交易物对冲策略的优点就是行情稳定,不会出现特别大的波动,但是利润相对来说比较少。

    笔者将算法已经编译成APK包(点击下载),大家可以参考软件中绘制的曲线,自行买卖。该软件的功能如下:

    1>     软件中数据来源自中国比特币

    2>     软件提供BTC,LTC,ETH,ETC的对冲行情,如下图所示:

     

     

    作者:科学家

                                                        Email:warensoft@163.com

                                                        微信:43175692

     

    转载于:https://www.cnblogs.com/warensoft/p/6297855.html

    展开全文
  • #####用于图表和交易算法的技术指标和覆盖脚本。 这些用JavaScript编写的指标脚本为平台上的内置技术指标提供了支持。 他们的工作是在任何给定的时间点从价格数据中得出一个值或一组值,以一个或多个叠加图或研究...
  • 使用Python构建交易算法[视频] 这是发行的《 的代码库》 。 它包含从头到尾完成视频课程所需的所有支持项目文件。 关于视频课程 这门课程是一个很好的机会,可以开始交易,获得奖励并Swift占领市场。 拥有传统资产...
  • 商人乔 在C ++中的Raspberry Pi集群上运行的羊驼交易算法
  • java财务管理系统源码此处提供的代码与下面引用的书籍章节有关。 交易模型算法有两种实现方式: ...这种设计自动交易算法的新方法是一种构建新型投资策略的简约方法,不仅可以产生利润,还可以为金融市场提供流动性

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,889
精华内容 3,555
关键字:

交易算法