<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
    <channel>
        <title>KeepLearning</title>
        <link>https://paragraph.com/@keeplearning-2</link>
        <description>undefined</description>
        <lastBuildDate>Thu, 21 May 2026 17:59:50 GMT</lastBuildDate>
        <docs>https://validator.w3.org/feed/docs/rss2.html</docs>
        <generator>https://github.com/jpmonette/feed</generator>
        <language>en</language>
        <copyright>All rights reserved</copyright>
        <item>
            <title><![CDATA[skyweaver关于延期新经济系统]]></title>
            <link>https://paragraph.com/@keeplearning-2/skyweaver-2</link>
            <guid>NYFy83omQqikYdWwg64R</guid>
            <pubDate>Wed, 31 Jan 2024 08:31:22 GMT</pubDate>
            <description><![CDATA[skyweaver新经济系统延迟的发布原因。大概看了下，未找到有效信息，说是在1月会发布，今天1月31日了，还没发布。估计是快了。为什么要延迟？不会要发币吧 Skyweavers, sorry for the added ping, but this is important and I wanted to let you know as soon as possible. As you all know, we are getting ready to launch a massive new set of features in early 2024, and after the Tournaments and Draft blog posts and livestreams, our New Economy update was next in line. For us to release our full economic plan, we are required to provide ample notice of certain changes. This mea...]]></description>
            <content:encoded><![CDATA[<p>skyweaver新经济系统延迟的发布原因。大概看了下，未找到有效信息，说是在1月会发布，今天1月31日了，还没发布。估计是快了。为什么要延迟？不会要发币吧</p><p>Skyweavers, sorry for the added ping, but this is important and I wanted to let you know as soon as possible.</p><p>As you all know, we are getting ready to launch a massive new set of features in early 2024, and after the Tournaments and Draft blog posts and livestreams, our New Economy update was next in line.</p><p>For us to release our full economic plan, we are required to provide ample notice of certain changes. This means we would have to commit to a launch date in the Economy blog post, which we fully intended to. While we got frustratingly close to being able to commit to our internal goal date, we can&apos;t quite do so in the next 48 hours. If we posted on Friday, we would&apos;ve had to push the actual release itself back. So ironically, this delay will almost certainly allow us to meet our overall timeline.</p><p>The <strong>Economy blog post will be released in January</strong> when the whole company reconvenes, and when we can firmly commit to the date we have in mind. As a side bonus, this will also give us more time to further test, model and iterate, which will only serve to improve the end result delivered to everyone. We will let you know as soon as possible.</p><p>As such, our livestream this Friday with Marcelo and Eddie is also canceled, and will be moved to a date in January, to be disclosed here on Discord.</p><p>We are truly sorry for the delay, but this is one of the realities of game development. We&apos;ve been around for 5 years because we do things right, comply with regulations and ensure our players get the transparency and information they deserve, and we won&apos;t endanger that legacy now.</p><p>See you in Sky in 2024, @everyone!</p>]]></content:encoded>
            <author>keeplearning-2@newsletter.paragraph.com (KeepLearning)</author>
        </item>
        <item>
            <title><![CDATA[BWB3实盘代码修改]]></title>
            <link>https://paragraph.com/@keeplearning-2/bwb3-3</link>
            <guid>z1eCOf26xyL25dACnrZ7</guid>
            <pubDate>Wed, 31 Jan 2024 01:55:12 GMT</pubDate>
            <description><![CDATA[1， 现象：空头偶尔会出现19个，默认选择20个空头 打印log发现是由于经过 transfer_swap函数后，币种名称出现了空的现象。这个函数的作用是用合约的symbol来确定现货的symbol，用的转换关系是 df_swap[&apos;symbol_spot&apos;] = df_swap[&apos;symbol&apos;].map(lambda x: x.split(&apos;1000&apos;)[1] if &apos;1000&apos; in x else special_symbol_dict.get(x.replace(&apos;USDT&apos;, &apos;&apos;), x.replace(&apos;USDT&apos;, &apos;&apos;))+&apos;USDT&apos;) special_symbol_dict.get(x.replace(&apos;USDT&apos;, &apos;&apos;), x.replace(&apos;USDT&apos;, &apos;&apos;)) 的作用是从 special_s...]]></description>
            <content:encoded><![CDATA[<p>1，</p><p>现象：空头偶尔会出现19个，默认选择20个空头</p><p>打印log发现是由于经过</p><p>transfer_swap函数后，币种名称出现了空的现象。</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/f67308a9f4fab6842b1b4a24f5e50565c1e2b071370c0e86b75583752485abe0.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>这个函数的作用是用合约的symbol来确定现货的symbol，用的转换关系是</p><p>df_swap[&apos;symbol_spot&apos;] = df_swap[&apos;symbol&apos;].map(lambda x: x.split(&apos;1000&apos;)[1] if &apos;1000&apos; in x else special_symbol_dict.get(x.replace(&apos;USDT&apos;, &apos;&apos;), x.replace(&apos;USDT&apos;, &apos;&apos;))+&apos;USDT&apos;)</p><p><code>special_symbol_dict.get(x.replace(&apos;USDT&apos;, &apos;&apos;), x.replace(&apos;USDT&apos;, &apos;&apos;))</code> 的作用是从 <code>special_symbol_dict</code> 中获取键为 <code>x.replace(&apos;USDT&apos;, &apos;&apos;)</code> 对应的值，如果该键不存在，则返回 <code>x.replace(&apos;USDT&apos;, &apos;&apos;)</code>。这个操作实际上是在尝试查找 <code>x.replace(&apos;USDT&apos;, &apos;&apos;)</code> 在字典中的映射关系，如果有映射关系就返回映射值，否则返回原始的 <code>x.replace(&apos;USDT&apos;, &apos;&apos;)</code>。</p><p>如果合约symbol包含1000的字符串，则取[1]第一个字符作为输出</p><p>如果symbol不包含1000的字符串，则判断symbol<code>.replace(&apos;USDT&apos;, &apos;&apos;)是否在special_symbol_dict中，如果在，则返回对应的value值，如果不在special_symbol_dict中，则返回symbol.replace(&apos;USDT&apos;, &apos;&apos;)。</code></p><p>两个如果最后都加上USDT。</p><p>一个新的币种 现货和合约symbol都是1000sats，如果还用上面的逻辑，则会出现问题，导致从合约倒推spot名称出来是satsusdt，导致在现货中找不到这个现货，因为现货也是1000satsusdt。</p><p>修改如下</p><pre data-type="codeBlock" text="    df_swap[&apos;symbol_spot&apos;] = df_swap[&apos;symbol&apos;].map(lambda x: &apos;1000SATSUSDT&apos; if x == &apos;1000SATSUSDT&apos; else (x.split(&apos;1000&apos;)[1] if &apos;1000&apos; in x else special_symbol_dict.get(x.replace(&apos;USDT&apos;, &apos;&apos;), x.replace(&apos;USDT&apos;, &apos;&apos;))+&apos;USDT&apos;))
"><code>    df_swap[<span class="hljs-string">'symbol_spot'</span>] <span class="hljs-operator">=</span> df_swap[<span class="hljs-string">'symbol'</span>].map(lambda x: <span class="hljs-string">'1000SATSUSDT'</span> <span class="hljs-keyword">if</span> x <span class="hljs-operator">=</span><span class="hljs-operator">=</span> <span class="hljs-string">'1000SATSUSDT'</span> <span class="hljs-keyword">else</span> (x.split(<span class="hljs-string">'1000'</span>)[<span class="hljs-number">1</span>] <span class="hljs-keyword">if</span> <span class="hljs-string">'1000'</span> in x <span class="hljs-keyword">else</span> special_symbol_dict.get(x.replace(<span class="hljs-string">'USDT'</span>, <span class="hljs-string">''</span>), x.replace(<span class="hljs-string">'USDT'</span>, <span class="hljs-string">''</span>))<span class="hljs-operator">+</span><span class="hljs-string">'USDT'</span>))
</code></pre><p>对1000SATSUSDT做了特殊处理，其实应该是把1000SATSUSDT加入到special_symbol_dict，然后先判断是否在special_symbol_dict里，再判断是否包含1000，先不搞了。关系不大。</p><p>可以在网站上看看历史的BUG修正</p><p>2，</p><p>实盘与回测有些选币对不上的问题。</p><p>应该是由于提前获取K线计算的因子排序不一样，所以会有差异。但是这个差异还是比较大，大概看了下，20个币种里有7个不一样。再对了另外一个时间点，3个不一样的。正常么？不好确认。那么我将选币个数调整到30个，看看回测效果会不会有很大不同？如果回测结果差异不大，那么就不管它了。如果差异大，则需要继续定位研究。</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/5a7e0de8183f773ee286e4019f94a21c4ab0f8a7e9de9e9ddd75653a9aaa8053.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>回测结果和选20个币还是有差异的。不过选30个本来就会导致收益降低，不一定是由于这个选币不一直引起的。发现一个好的思路，如果我取数据的时候，把最新的一根K线去掉，也就是去掉最近的K线，然后计算因子值，回测的时候也这么做，那么选币应该是一样了吧？</p><p>修改成以下方式：</p><p>df[factor_name] = df[factor_name].shift(2)</p><p>回测效果如下，和df[factor_name] = df[factor_name].shift(1)差的有点多。</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/2b13a0edfb9ae6bef722cf8181df031c829bdbaa582d0094f50c9fc31cd3d5a3.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure>]]></content:encoded>
            <author>keeplearning-2@newsletter.paragraph.com (KeepLearning)</author>
        </item>
        <item>
            <title><![CDATA[常见问题]]></title>
            <link>https://paragraph.com/@keeplearning-2/kmM5wG29fpIrOOCG9cg4</link>
            <guid>kmM5wG29fpIrOOCG9cg4</guid>
            <pubDate>Tue, 23 Jan 2024 08:35:35 GMT</pubDate>
            <description><![CDATA[会一直更新： 1，360freewifi无法启动成功 驱动问题，安装360freeap_whole_setup_5.3.0.5020.exe 2，微信聊天记录无法迁移 需要在手机设置里把微信的本地网络开关打开。]]></description>
            <content:encoded><![CDATA[<p>会一直更新：</p><p>1，360freewifi无法启动成功</p><p>驱动问题，安装360freeap_whole_setup_5.3.0.5020.exe</p><p>2，微信聊天记录无法迁移</p><p>需要在手机设置里把微信的本地网络开关打开。</p>]]></content:encoded>
            <author>keeplearning-2@newsletter.paragraph.com (KeepLearning)</author>
        </item>
        <item>
            <title><![CDATA[币圈行情时间线]]></title>
            <link>https://paragraph.com/@keeplearning-2/3DEYW1RE5bgYO8mBZZ5t</link>
            <guid>3DEYW1RE5bgYO8mBZZ5t</guid>
            <pubDate>Wed, 17 Jan 2024 04:51:46 GMT</pubDate>
            <description><![CDATA[以周线为单位来看币圈历史的行情时间线，能从更大更广的角度来看当前处于历史哪个位置，主要的基础思想是万物循坏，周期性。根据历史的行情走势， 不一定能精准预测当前的走势，但是绝对有参考意义。 20170814-20171211 大牛市 周期开启： 熊市开始： 20171211-20181210 大熊市，一年时间，中间最多一个月的反弹，以收盘价计算的话，反弹最大幅度30%。 熊市下面的震荡：历时15个月。中间有反弹，有震荡。 20181210-20190325 熊市底部的低波震荡 三个月时间 20190325-20190805 4倍的一个小牛市，4个月时间。 20190805-20200312 高位震荡，312大跌筑底成功，从高位跌了60%左右。高位震荡8个月。close跌到了最高close的46%，插针计算的话，跌到了最高close的33%。 牛市：牛市也分三部分，中间伴随着50%的大跌。牛市总共历时20个月。 20200312-20210405 一波大牛市，历时1年，BTC 12倍涨幅 20210405-20210712 牛市中间的大跌，跌了3个月，跌幅50% 20210712- ...]]></description>
            <content:encoded><![CDATA[<p>以周线为单位来看币圈历史的行情时间线，能从更大更广的角度来看当前处于历史哪个位置，主要的基础思想是万物循坏，周期性。根据历史的行情走势， 不一定能精准预测当前的走势，但是绝对有参考意义。</p><p>20170814-20171211 大牛市</p><p>周期开启：</p><p>熊市开始：</p><p>20171211-20181210 大熊市，一年时间，中间最多一个月的反弹，以收盘价计算的话，反弹最大幅度30%。</p><p>熊市下面的震荡：历时15个月。中间有反弹，有震荡。</p><p>20181210-20190325 熊市底部的低波震荡 三个月时间</p><p>20190325-20190805 4倍的一个小牛市，4个月时间。</p><p>20190805-20200312 高位震荡，312大跌筑底成功，从高位跌了60%左右。高位震荡8个月。close跌到了最高close的46%，插针计算的话，跌到了最高close的33%。</p><p>牛市：牛市也分三部分，中间伴随着50%的大跌。牛市总共历时20个月。</p><p>20200312-20210405 一波大牛市，历时1年，BTC 12倍涨幅</p><p>20210405-20210712 牛市中间的大跌，跌了3个月，跌幅50%</p><p>20210712- 20211108 继续牛市，再涨4个月，涨幅1倍。 牛市结束。</p><p>周期结束。</p><p>20211108 - 20221107 大熊市，一年时间，跌幅75%。</p><p>从历史看，当前时间处于高位震荡时间，如果和历史一样，在3月份之前会来一个大跌，现在close最高价44000左右，那么按50%算，大跌后22000是最后的抄底价格了。挂单插针的话，20000是能接到盘的。如果还是按照312大跌算的话，因为现在btc市值大了，波动会小一点，都加上10%。那么按照close算的话，能够在44000*<em>（46%+10%）= 24640买到。如果按照最低价插针挂单方式的话，能够在44000</em>*（33%+10%）=18920买到。</p><p>但是从现在行情看，与历史有些不同，当前的行情一直往上，没有观察到熊市底部的震荡。</p><p>时间有了，什么时候买有了，那么还需要解决的是买什么，怎么买。</p><p>买什么：</p><p>1，基本面买，买各大交易所都有的币，BTC ETH不买</p><p>2，策略买，买流动性最低的币</p><p>怎么买：</p><p>1，策略买</p><p>2，手工买</p><p>关于持有</p><p>1，大跌后买了就不动，买好多币，持有整个牛市周期，历史经验是一年。或者按月监测，如果涨了10倍或者10倍就清仓这个币种。</p><p>2，根据策略来，跑BWB3纯多策略。</p>]]></content:encoded>
            <author>keeplearning-2@newsletter.paragraph.com (KeepLearning)</author>
        </item>
        <item>
            <title><![CDATA[你不知道的波动性]]></title>
            <link>https://paragraph.com/@keeplearning-2/x9RDUGnvPmX44VL2i15u</link>
            <guid>x9RDUGnvPmX44VL2i15u</guid>
            <pubDate>Mon, 15 Jan 2024 14:52:16 GMT</pubDate>
            <description><![CDATA[可以从以下几个方面来改进因子： 1，量小换手率因子 2，量小换手率因子std 3，优加换手率因子，用打分 4，UTR2.0 用激活函数 5，换手率变化率的稳定因子GTR，用来加强的。 不只是换手率因子可以用上面五种方法，任何因子都可以用上面的方法尝试。]]></description>
            <content:encoded><![CDATA[<p>可以从以下几个方面来改进因子：</p><p>1，量小换手率因子</p><p>2，量小换手率因子std</p><p>3，优加换手率因子，用打分</p><p>4，UTR2.0 用激活函数</p><p>5，换手率变化率的稳定因子GTR，用来加强的。</p><p>不只是换手率因子可以用上面五种方法，任何因子都可以用上面的方法尝试。</p>]]></content:encoded>
            <author>keeplearning-2@newsletter.paragraph.com (KeepLearning)</author>
        </item>
        <item>
            <title><![CDATA[对默认策略试试参数128的变化]]></title>
            <link>https://paragraph.com/@keeplearning-2/128</link>
            <guid>lan7mE4i1tl8efSAwc3X</guid>
            <pubDate>Mon, 15 Jan 2024 09:39:49 GMT</pubDate>
            <description><![CDATA[默认168参数 累积净值 51.35 年化收益 182.78% 最大回撤 -12.51% 参数100 累积净值 40.16 年化收益 165.02% 最大回撤 -13.38% 参数1000 累积净值 43.06 年化收益 169.94% 最大回撤 -13.42% 参数500 累积净值 35.18 年化收益 155.91% 最大回撤 -12.70% 总体参数从100-1000回测效果差别不大。参数不漂。]]></description>
            <content:encoded><![CDATA[<p>默认168参数</p><p>累积净值 51.35 年化收益 182.78% 最大回撤 -12.51%</p><p>参数100</p><p>累积净值 40.16 年化收益 165.02% 最大回撤 -13.38%</p><p>参数1000</p><p>累积净值 43.06 年化收益 169.94% 最大回撤 -13.42%</p><p>参数500</p><p>累积净值 35.18 年化收益 155.91% 最大回撤 -12.70%</p><p>总体参数从100-1000回测效果差别不大。参数不漂。</p>]]></content:encoded>
            <author>keeplearning-2@newsletter.paragraph.com (KeepLearning)</author>
        </item>
        <item>
            <title><![CDATA[对实盘BWB3做权重分配测试]]></title>
            <link>https://paragraph.com/@keeplearning-2/bwb3-2</link>
            <guid>THkV2Oxwp2vpPcX9ZvsA</guid>
            <pubDate>Mon, 15 Jan 2024 07:02:06 GMT</pubDate>
            <description><![CDATA[实盘的时候有时候发现，涨了一根K线后直接就卖出了，导致后面K线的涨幅吃不到。所以就想着是否需要提高历史数据的权重，降低当前K线的权重，这样就不会对当前K线的变化很敏感，可能可以多持有几个小时K。 def custom_weights(length): weights = np.arange(1, length + 1) reversed_weights = weights[::-1] # 反转权重顺序 return reversed_weights / sum(reversed_weights) df[factor_name] = df[&apos;流动溢价&apos;].rolling(window=n, min_periods=1).apply(lambda x: np.dot(x, custom_weights(n)),raw=True) start_date = &apos;2020-04-01&apos; # 回测开始时间 end_date = &apos;2024-01-14&apos; # 回测结束时间 参数还是168，测试结果如下 累积净值 18.64 年化收益 ...]]></description>
            <content:encoded><![CDATA[<p>实盘的时候有时候发现，涨了一根K线后直接就卖出了，导致后面K线的涨幅吃不到。所以就想着是否需要提高历史数据的权重，降低当前K线的权重，这样就不会对当前K线的变化很敏感，可能可以多持有几个小时K。</p><p>def custom_weights(length): weights = np.arange(1, length + 1) reversed_weights = weights[::-1] # 反转权重顺序 return reversed_weights / sum(reversed_weights)</p><p>df[factor_name] = df[&apos;流动溢价&apos;].rolling(window=n, min_periods=1).apply(lambda x: np.dot(x, custom_weights(n)),raw=True)</p><p>start_date = &apos;2020-04-01&apos; # 回测开始时间</p><p>end_date = &apos;2024-01-14&apos; # 回测结束时间</p><p>参数还是168，测试结果如下</p><p>累积净值 18.64 年化收益 116.42% 最大回撤 -13.62%</p><p>用std然后再apply试试</p><p>df[&apos;流动溢价std&apos;] = df[&apos;流动溢价&apos;].rolling(n, min_periods=2).std()</p><p>df[factor_name] = df[&apos;流动溢价std&apos;].rolling(window=n, min_periods=1).apply(lambda x: np.dot(x, custom_weights(n)),raw=True)</p><p>累积净值 30.07 年化收益 145.52% 最大回撤 -13.75%</p><p>不做反转：</p><p>def custom_weights(length): weights = np.arange(1, length + 1)</p><p>return weights / sum(weights)</p><p>df[&apos;流动溢价std&apos;] = df[&apos;流动溢价&apos;].rolling(n, min_periods=2).std()</p><p>df[factor_name] = df[&apos;流动溢价std&apos;].rolling(window=n, min_periods=1).apply(lambda x: np.dot(x, custom_weights(n)),raw=True)</p><p>累积净值 45.74 年化收益 174.28% 最大回撤 -13.78%</p><p>默认策略是多少来着？</p><p>累积净值 51.35 年化收益 182.78% 最大回撤 -12.51%</p><p>看来效果不明显啊</p>]]></content:encoded>
            <author>keeplearning-2@newsletter.paragraph.com (KeepLearning)</author>
        </item>
        <item>
            <title><![CDATA[正在跑的策略]]></title>
            <link>https://paragraph.com/@keeplearning-2/OCA4EtikqNbzl2g5jthr</link>
            <guid>OCA4EtikqNbzl2g5jthr</guid>
            <pubDate>Mon, 15 Jan 2024 07:00:29 GMT</pubDate>
            <description><![CDATA[正在跑的策略回测结果 ILLQStd start_date = &apos;2020-04-01&apos; # 回测开始时间 end_date = &apos;2024-01-14&apos; # 回测结束时间 black_list = [&apos;COCOS-USDT&apos;, &apos;PERP-USDT&apos;, &apos;BTC-USDT&apos;, &apos;ETH-USDT&apos;, &apos;BNB-USDT&apos;, &apos;LUNA-USDT&apos;, &apos;LUNA2-USDT&apos;] min_kline_num = 720 hold_period = &apos;1H&apos; long_select_coin_num = 20 short_select_coin_num = 20 (&apos;ILLQStd&apos;, True, 168, 1) (&apos;PctChange&apos;, 168) 0.9过滤]]></description>
            <content:encoded><![CDATA[<p>正在跑的策略回测结果</p><p>ILLQStd</p><p>start_date = &apos;2020-04-01&apos; # 回测开始时间</p><p>end_date = &apos;2024-01-14&apos; # 回测结束时间</p><p>black_list = [&apos;COCOS-USDT&apos;, &apos;PERP-USDT&apos;, &apos;BTC-USDT&apos;, &apos;ETH-USDT&apos;, &apos;BNB-USDT&apos;, &apos;LUNA-USDT&apos;, &apos;LUNA2-USDT&apos;]</p><p>min_kline_num = 720</p><p>hold_period = &apos;1H&apos;</p><p>long_select_coin_num = 20</p><p>short_select_coin_num = 20</p><p>(&apos;ILLQStd&apos;, True, 168, 1)</p><p>(&apos;PctChange&apos;, 168)</p><p>0.9过滤</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/05764aa5c0c94922fe2ad8827a578ace6291b0e99873b302245b4cfda5a28f7c.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/d5e2bad39adb7a590ad32f83f53b52aa0e504f3dcafc07b0494971ecc27e2b6b.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/e823f192b82860e67fef9d7e95e52ef220f2c3fec3c626d67cd29b2e7f5279b1.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/850dd04911df8ce2430a4b8d6eb60744d0273148b943c2ebc160c5d653c426e4.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure>]]></content:encoded>
            <author>keeplearning-2@newsletter.paragraph.com (KeepLearning)</author>
        </item>
        <item>
            <title><![CDATA[常用python 语法]]></title>
            <link>https://paragraph.com/@keeplearning-2/python-3</link>
            <guid>LiPckgzLavdFEyqzru7V</guid>
            <pubDate>Sun, 14 Jan 2024 03:46:39 GMT</pubDate>
            <description><![CDATA[1，注意中括号 df = pd.read_csv(path, parse_dates=[&apos;candle_begin_time&apos;]) 2，时间修改 df[&apos;candle_begin_time&apos;] = df[&apos;candle_begin_time&apos;] - pd.Timedelta(hours=8) 3，删掉某一列 df.drop(&apos;symbol_type&apos;, axis=1, inplace=True) 4，某一列的replace，注意需要加上str df[&apos;symbol&apos;] = df[&apos;symbol&apos;].str.replace(&apos;USDT&apos;, &apos;-USDT&apos;) 5，比较两个文件夹 files1 = set(os.listdir(xingbuxing_spot_path)) files2 = set(os.listdir(menglong_spot_path)) unique_to_folder1 = files1 - files...]]></description>
            <content:encoded><![CDATA[<p>1，注意中括号</p><p>df = pd.read_csv(path, parse_dates=[&apos;candle_begin_time&apos;])</p><p>2，时间修改</p><p>df[&apos;candle_begin_time&apos;] = df[&apos;candle_begin_time&apos;] - pd.Timedelta(hours=8)</p><p>3，删掉某一列</p><p>df.drop(&apos;symbol_type&apos;, axis=1, inplace=True)</p><p>4，某一列的replace，注意需要加上str</p><p>df[&apos;symbol&apos;] = df[&apos;symbol&apos;].str.replace(&apos;USDT&apos;, &apos;-USDT&apos;)</p><p>5，比较两个文件夹</p><p>files1 = set(os.listdir(xingbuxing_spot_path))</p><p>files2 = set(os.listdir(menglong_spot_path))</p><p>unique_to_folder1 = files1 - files2</p><p>unique_to_folder2 = files2 - files1</p><p>6，文件夹下的所有文件，也可以统计个数，list(files1)</p><p>files1 = os.listdir(xingbuxing_spot_path)</p><p>7，最左下角数值</p><p>df.iloc[-1, 0]</p>]]></content:encoded>
            <author>keeplearning-2@newsletter.paragraph.com (KeepLearning)</author>
        </item>
        <item>
            <title><![CDATA[全量下载币安数据用于BWB3]]></title>
            <link>https://paragraph.com/@keeplearning-2/bwb3</link>
            <guid>0a6GvgJOxd58K2yatCiS</guid>
            <pubDate>Sun, 14 Jan 2024 03:46:04 GMT</pubDate>
            <description><![CDATA[py文件： download_binance_1h_spot_and_swap.py 下载完后记得检查error list中的文件，有些好像下载会有问题。 这样一个个下载非常慢，因为是全量数据，太快了容易被BN封了，能搞一个增量数据下载最好了。 必须加上下面这句话 df_result[&apos;symbol&apos;] = df_result[&apos;symbol&apos;].str.replace(&apos;USDT&apos;, &apos;-USDT&apos;) 不然会导致无法选出空头。在 BWB3 transfer_swap这个函数里会有问题。]]></description>
            <content:encoded><![CDATA[<p>py文件：</p><p>download_binance_1h_spot_and_swap.py</p><p>下载完后记得检查error list中的文件，有些好像下载会有问题。</p><p>这样一个个下载非常慢，因为是全量数据，太快了容易被BN封了，能搞一个增量数据下载最好了。</p><p>必须加上下面这句话</p><p>df_result[&apos;symbol&apos;] = df_result[&apos;symbol&apos;].str.replace(&apos;USDT&apos;, &apos;-USDT&apos;)</p><p>不然会导致无法选出空头。在</p><p>BWB3 transfer_swap这个函数里会有问题。</p>]]></content:encoded>
            <author>keeplearning-2@newsletter.paragraph.com (KeepLearning)</author>
        </item>
        <item>
            <title><![CDATA[邢大数据改成自己数据修改的地方]]></title>
            <link>https://paragraph.com/@keeplearning-2/H1t69E96N7dtChI2ZJ0g</link>
            <guid>H1t69E96N7dtChI2ZJ0g</guid>
            <pubDate>Sun, 14 Jan 2024 02:34:51 GMT</pubDate>
            <description><![CDATA[1， trans_period_for_period 加的df[&apos;fundingRate&apos;] = 0 2， 1_选币数据整理.py df[&apos;avg_price&apos;] = df[&apos;open&apos;] df = pd.read_csv(file_path, encoding=&apos;gbk&apos;, skiprows=1, parse_dates=[&apos;candle_begin_time&apos;]) 3， Functions.py _swap_df = pd.read_csv(_swap_file, encoding=&apos;gbk&apos;, skiprows=0, parse_dates=[&apos;candle_begin_time&apos;]) _swap_df = pd.read_csv(_swap_file2, encoding=&apos;gbk&apos;, skiprows=0, parse_dates=[&apos;candle_begin_time&apos;]) 、 不一样的地方...]]></description>
            <content:encoded><![CDATA[<p>1，</p><p>trans_period_for_period</p><p>加的df[&apos;fundingRate&apos;] = 0</p><p>2，</p><p>1_选币数据整理.py</p><p>df[&apos;avg_price&apos;] = df[&apos;open&apos;]</p><p>df = pd.read_csv(file_path, encoding=&apos;gbk&apos;, skiprows=1, parse_dates=[&apos;candle_begin_time&apos;])</p><p>3，</p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="http://Functions.py">Functions.py</a></p><p>_swap_df = pd.read_csv(_swap_file, encoding=&apos;gbk&apos;, skiprows=0, parse_dates=[&apos;candle_begin_time&apos;])</p><p>_swap_df = pd.read_csv(_swap_file2, encoding=&apos;gbk&apos;, skiprows=0, parse_dates=[&apos;candle_begin_time&apos;])</p><p>、</p><p>不一样的地方</p><p>swap ARK数据有点不一样</p><p>bnx 差了好多数据</p>]]></content:encoded>
            <author>keeplearning-2@newsletter.paragraph.com (KeepLearning)</author>
        </item>
        <item>
            <title><![CDATA[保4可以考虑的方向]]></title>
            <link>https://paragraph.com/@keeplearning-2/4</link>
            <guid>CJnNucxznA1d7x0hr0IK</guid>
            <pubDate>Thu, 11 Jan 2024 07:07:01 GMT</pubDate>
            <description><![CDATA[1，多因子，多币，前置过滤，保3和纯多的轮动，保2与纯多的结合，直接用过滤，有段时间不做空。回撤的阶段，可解释性很强，策略易于理解。 20240118 空头过滤很强的话，导致牛市只有选出一个或者少于设定的20个币，那么默认空头也是用半份资金。这种情况下，如果只选出了一个空头，会把全部的空头仓位都在一个币上，这样就很危险，容易爆仓，即使有监测脚本。然后想到的解决办法是，一开始就按照40个币来设定每个币的仓位，如果没有选出，则空闲资金。这样，牛市的话空头仓位也会比较少，符合行情。 先看看回测部分的代码： 看论坛上有个bias_7效果很好，用一下。 默认实盘配置下， df_long = df_long[(df_long[&apos;filter_rank&apos;] < 0.9)] df_short = df_short[(df_short[&apos;filter_rank&apos;] < 0.9)] df_short = df_short[(df_short[&apos;Bias_168&apos;] < 0)] 累积净值 12.99 年化收益 96.74% 最大回撤 -15....]]></description>
            <content:encoded><![CDATA[<p>1，多因子，多币，前置过滤，保3和纯多的轮动，保2与纯多的结合，直接用过滤，有段时间不做空。回撤的阶段，可解释性很强，策略易于理解。</p><p>20240118</p><p>空头过滤很强的话，导致牛市只有选出一个或者少于设定的20个币，那么默认空头也是用半份资金。这种情况下，如果只选出了一个空头，会把全部的空头仓位都在一个币上，这样就很危险，容易爆仓，即使有监测脚本。然后想到的解决办法是，一开始就按照40个币来设定每个币的仓位，如果没有选出，则空闲资金。这样，牛市的话空头仓位也会比较少，符合行情。</p><p>先看看回测部分的代码：</p><p>看论坛上有个bias_7效果很好，用一下。</p><p>默认实盘配置下，</p><p>df_long = df_long[(df_long[&apos;filter_rank&apos;] &lt; 0.9)]</p><p>df_short = df_short[(df_short[&apos;filter_rank&apos;] &lt; 0.9)] df_short = df_short[(df_short[&apos;Bias_168&apos;] &lt; 0)]</p><p>累积净值 12.99 年化收益 96.74% 最大回撤 -15.99%</p><p>空头只用bias过滤，感觉效果也不行啊。</p><p>df_long = df_long[(df_long[&apos;filter_rank&apos;] &lt; 0.8)]</p><p>df_short = df_short[(df_short[&apos;Bias_168&apos;] &lt; 0)]</p><p>累积净值 9.87 年化收益 83.00% 最大回撤 -17.21%</p><p>从论坛抄了个作业，逆天啊</p><p>累积净值 281.84 年化收益 343.20% 最大回撤 -15.11%</p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="https://bbs.quantclass.cn/thread/31330">https://bbs.quantclass.cn/thread/31330</a></p><p>配置，0.1选币，</p><p>hold_period = &apos;1D&apos;</p><p>factor_list = [ (&apos;ILLQStd&apos;, True, 7, 0.35), (&apos;QuoteVolumeStd&apos;, True, 5, 0.65) ]</p><p>filter_list = [ (&apos;RsiZhongXing&apos;, 14), (&apos;Bias&apos;, 7), ]</p><p>多头过滤</p><p>df_long[&apos;filter_rank&apos;] = df_long.groupby(&apos;candle_begin_time&apos;)[&apos;RsiZhongXing_14&apos;].rank(ascending=True, pct=True)</p><p>df_long = df_long[(df_long[&apos;filter_rank&apos;] &lt; 0.4)]</p><p>空头过滤</p><p>df_short = df_short[(df_short[&apos;Bias_7&apos;] &lt; 0)]</p><p>这还是个1D的持仓。</p><p>看看具体是哪个引起的高收益。去掉空头过滤试试看</p><p>去掉空头过滤后，效果就很一般了，回测结果如下</p><p>累积净值 19.01 年化收益 117.54% 最大回撤 -42.49%</p><p>从这里看出，用bias过滤效果很大，应该把这个因子融入到实盘中，或者吸收它的方法， 在大牛市的时候，不要做空，直接全部做多就好。暂时想到的方法是，用当前close比168个小时前的close对比，统计所有币种，如果涨的币种个数是跌的币种个数的两倍(这个可以设置为参数)，则不做空。</p><p>只做多的情况应该要很严格，也就是这个倍数要比较高，要确定性的牛市再只做空，所以这个空头学问比较大。刚才想到的用当前close和168个小时前的close比较来判断趋势，感觉不行，因为判断不准趋势。当然这里有两个参数能影响，1，和多久以前的close比较。2，这个倍数。</p><p>这个倍数很关键。!!</p><p>20240119</p><p>回测结果，</p><p>选币多空都是20个，因子参数128，持仓1H，</p><p>多头过滤</p><p>df_long = df_long[(df_long[&apos;filter_rank&apos;] &lt; 0.9)]</p><p>空头过滤</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/5c2dcb4653a3b7ddbf075bf87d017840cc8cda72956488d468deafdc83a27bea.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>结果如下</p><p>累积净值 88.24 年化收益 226.21% 最大回撤 -17.85%</p><p>分年收益率： 涨跌幅 candle_begin_time2020-12-31 80.13% 2021-12-31 604.2% 2022-12-31 268.28% 2023-12-31 94.32% 2024-12-31 -2.79%</p><p>与正在跑的策略相比，净值和年华提高，但是最大回撤也变大，这可以解释，因为纯多头的时候没有空头保护，也会跌。导致最大回撤增大。</p><p>用m/n&gt;1试试看，就是如果整个市场涨的各种个数比跌的币种个数多的话，这个周期就是纯多头。这种情况是不是空头的手续费会比较高，因为一会开仓，一会平仓。所以最好是以D为单位来做这个事情。</p><p>先看看m/n&gt;1的情况</p><p>多头过滤和原来一样，空头过滤如下</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/cab483b32d4ec376287801fdaf23d5cf97adbaebeb61cd3a9400f4964061a602.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>累积净值 81.46 年化收益 219.40% 最大回撤 -15.19%</p><p>分年收益率： 涨跌幅 candle_begin_time2020-12-31 80.92% 2021-12-31 535.04% 2022-12-31 252.24% 2023-12-31 108.37% 2024-12-31 -3.4%</p><p>如果将空头过滤改成m/n&gt;-1,表示每个周期都不选空头，那么就是纯多头。回测结果</p><p>累积净值 14456.53 年化收益 1152.91% 最大回撤 -64.83%</p><p>和实盘跑的策略当空头选币数量设置为0的结果一样。</p><p>如果我过滤很严，比如m/(m+n) &gt; 0.9时才做多。</p><p>条件 m / (m + n) &gt; 0.9，回测结果:</p><p>累积净值 35.38 年化收益 156.30% 最大回撤 -20.00%</p><p>如果市场大跌，那么所有币种都会大跌。但是处于牛市的时候，会有结构性的一些币种先涨，那么我将条件设置为0.3，就是如果有1/3的币种时涨的，我也只做多头。必须要去掉的是在大熊市中的纯多头情况。如果在震荡市和大牛市，我都希望是纯多头。其实这个0.3还可以小。只要有涨的币，我就是纯多头。因为如果是大熊市，很难有币能涨。这个168需要再改大一点。当然这种情况下也会吃到大牛市中的回调，这部分回撤。</p><p>m / n &gt; 0.1:</p><p>累积净值 119.79 年化收益 253.62% 最大回撤 -26.81%</p><p>看来纯多的累计净值大，主要来自跌后的反弹？</p><p>试试</p><p>m / n &lt; 0.1:</p><p>累积净值 40.33 年化收益 165.32% 最大回撤 -32.79%</p><p>纯多头比这种过滤条件的优势是纯多头的话全部资金都在做空，但是如果你偶尔纯多头，会浪费大量的资金在空头上。</p><p>试试21天的效果，如果当前的close比21天前的close大的话，则判断是向上的趋势。</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/024157b38e8952d7ee4606446a2b18ec9f2d99ff32ca087d63cf42bdd1826209.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>336小时回测的结果</p><p>累积净值 99.8 年化收益 236.98% 最大回撤 -21.79%</p><p>最大回撤开始时间 2021-02-22 03:00:00 最大回撤结束时间 2021-02-24 08:00:00</p><p>最大回撤时间在两天之内发生，可以看看发生了什么。除了这个回撤，也有一次-17%的回撤，其他都在-15%以内。</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/e5ed438d69fedc744c9484d7f8e665f9357d697780572e83bb9ab31e55e3a17f.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>累积净值 92.15 年化收益 229.96% 最大回撤 -29.53%如果用长短均线判断趋势呢</p><p>就是当前的close在短均线之上，也在长均线之上。用10，700参数试试。先用pct试试把，就是当前close大于24小时的close，也大于720小时前的close.</p><p>空头过滤</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/b55810dddaac70d5bd62d7a9ddbfba2913f25b94558a02baef2eff2be05a32a7.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>累积净值 35.52 年化收益 156.57% 最大回撤 -27.67%</p><p>效果不明显。</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/8c6ceff736aed157b9219f6de4f3d73e9e2e1790dbadc92e9db3132ab707f778.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>累积净值 42.68 年化收益 169.30% 最大回撤 -24.68%</p><h1 id="h-" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>写在前面，</strong></h1><p>简单记录下听直播的时候的ppt和邢大说的内容，感觉比直接听直播要省时间。当作是学习笔记吧</p><h1 id="h-" class="text-4xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>直播内容：</strong></h1><h4 id="h-" class="text-xl font-header !mt-6 !mb-3 first:!mt-0 first:!mb-0"><strong>纯多的方案：</strong></h4><p><strong>方案1：无脑跑纯多，死扛回撤。把70%的回撤只当作数字，但实盘都是血</strong></p><p><strong>方案2：对单币进行单独择时过滤</strong></p><p>使用bias&lt;0 进行前置过滤 ：当选币的价格小于均线时就不去选他。目的是在牛市的时候就不要去加空头---能够市场整体上涨时慢慢甩掉空头，变成纯多。风险：一部分时间会空非常少的币种，爆仓风险较大</p><p>也可以使用bias&lt;0进行后置过滤，选出币之后再过滤</p><p><strong>方案3：空头整体进行择时</strong></p><p>空头择时不触发空仓：跑多空中性策略</p><p>空头择时触发空仓后跑纯多</p><p><strong>方案4：纯多头择时</strong></p><p>择时触发空仓后不持仓</p><p>不触发时跑纯多</p><p>其实就是指数择时策略，策略波动大，很难坚持</p><p><strong>方案5：多空比例不平衡</strong></p><p>比如六成仓位做多，4成仓位做空</p><p>相当关于80%的资金做中性，20%的资金做纯多</p><p>相比于其他方案，更推荐这一个</p><p>一定程度上可以弥补由于BTC的暴涨造成的回撤，但也会由于市场暴跌造成更大的回撤</p><p><strong>研究方向：</strong></p><p>做研究，最重要的时研究方向的选择，选对方向一路正反馈，选错就是石沉大海</p><p>分享会以上的方向都探索过，性价比都一般。</p><h2 id="h-" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>择时与选币</strong></h2><p><strong>任何策略细分到最后都是选股和择时</strong></p><p>永远多往选股上靠---择时性价比低</p><h2 id="h-4" class="text-3xl font-header !mt-8 !mb-4 first:!mt-0 first:!mb-0"><strong>保温杯4---面对纯多诱惑，降低风险的解决方案</strong></h2><p><strong>传统的策略轮动</strong>：在多个选股策略之间进行轮动，总共5个选股策略，每周从5个策略中选择一到两个，下周买入</p><p><strong>也有人在币圈中性策略之间轮动</strong>：动量中性和保温杯之间的轮动， 不同动量中性策略之间的轮动</p><p>策略轮动，在同类型策略之间进行轮动，对策略进行二次选择（本质还是选股策略）</p><p><strong>有没有想过在不同的策略之间进行轮动？</strong></p><p>保温杯4 解决方案</p><ul><li><p><strong>在纯多策略和中性策略之间进行轮动：</strong></p></li><li><p><strong>纯多：满仓多头</strong></p></li><li><p><strong>中性：一半多头一般空头</strong></p></li><li><p><strong>每个周期结束，判断下个周期持仓是跑纯多还是中性</strong></p></li><li><p><strong>纯多转中性：平仓一半多头，拿钱作为保证金开空头</strong></p></li><li><p><strong>中性转多头：平掉全部空头，全部的钱跑多头</strong></p></li><li><p>**纯多策略和中性策略之间进行轮动...</p></li></ul>]]></content:encoded>
            <author>keeplearning-2@newsletter.paragraph.com (KeepLearning)</author>
        </item>
        <item>
            <title><![CDATA[针对实盘策略的回测具体分析]]></title>
            <link>https://paragraph.com/@keeplearning-2/nBdcJwDjnV7tr6Hs7MSh</link>
            <guid>nBdcJwDjnV7tr6Hs7MSh</guid>
            <pubDate>Mon, 08 Jan 2024 04:58:49 GMT</pubDate>
            <description><![CDATA[实盘策略： BWB3， ILLQStd 因子参数128，过滤参数128，0.9Rank过滤，持仓1小时，选币多空都是20个，黑名单 &apos;BTC-USDT&apos;, &apos;ETH-USDT, LUNA-USDT, TRB-USDT, LUNA2, BNB&apos;。 用了尝鲜版得到如下结果，纯多头1200多倍，牛市的时候可以用。这纯多头太牛了，在2022年大熊市行情下，竟然有3倍的利润。纯多头好诱人啊，好想跑一个纯多头。先弄个1000U试试纯多头，为将来的牛市做好准备。BWB3， ILLQStd 因子参数128，过滤参数128，0.9Rank过滤，持仓1小时，选币多空都是10个。今天分析下这次大回撤的原因 从回测看到，最大回撤发生在2022-05-11 12-14点之间，看看当时发生了什么 查看 [(&apos;ILLQStd&apos;, True, 168, 1)]_选币结果_1H_0.csv可以看到，在20220511 12点的时候，空头选到了LUNA的币，有60%的盈利，但是在13点开始的K线上看，LUNA还是空头，但是一根1小时K线，直接涨了3倍多。从...]]></description>
            <content:encoded><![CDATA[<p>实盘策略：</p><p>BWB3， ILLQStd 因子参数128，过滤参数128，0.9Rank过滤，持仓1小时，选币多空都是20个，黑名单</p><p>&apos;BTC-USDT&apos;, &apos;ETH-USDT, LUNA-USDT, TRB-USDT, LUNA2, BNB&apos;。</p><p>用了尝鲜版得到如下结果，纯多头1200多倍，牛市的时候可以用。这纯多头太牛了，在2022年大熊市行情下，竟然有3倍的利润。纯多头好诱人啊，好想跑一个纯多头。先弄个1000U试试纯多头，为将来的牛市做好准备。</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/3420921ee668c515ada0716ce0aecd966b0094f2550610a1592d54662ed5e7a2.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/c77e3001d741761c968403c511acbc107b5183d42110b58520272e3c6cc97936.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>BWB3， ILLQStd 因子参数128，过滤参数128，0.9Rank过滤，持仓1小时，选币多空都是10个。</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/cea172e07d014118430a3609ce60db73c4230de2285b1dde0d1e21004711399f.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/f0062c3f75f081367f876f87fc21fea4b62ea57db6334f810ab80d5866b524ba.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/61a9e5d92c45751671c9298382b37bbc4130dcdca8a056156c32f73b7f0fcb0c.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>今天分析下这次大回撤的原因</p><p>从回测看到，最大回撤发生在2022-05-11 12-14点之间，看看当时发生了什么</p><p>查看</p><p>[(&apos;ILLQStd&apos;, True, 168, 1)]_选币结果_1H_0.csv</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/9c4ec9e661ace72fda348be925b3d7efdfcf41372a1390668af92e7774857e9b.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>可以看到，在20220511 12点的时候，空头选到了LUNA的币，有60%的盈利，但是在13点开始的K线上看，LUNA还是空头，但是一根1小时K线，直接涨了3倍多。</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/7b05d43ec21314af3293c43aa909760275af7ca4b060cec180a5ff75bab818e2.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/70927af3936cf5f49b91cfe47ce95aabf0dff5cc35337bb8a7441a68d2c6a89e.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>从上面两图中可以看到，20点的K线还跌了60%，21点的K线就涨了3倍多。太恐怖了。</p><p>这个策略做空流动性好的，所以有些币大涨大跌也会被选中。大涨的币应该是选不中，因为有PCT change过滤。大跌的币会被选中。 这个策略就怕某个币大跌后的反弹。</p><p>解决方法:</p><p>1,选更多的币种。现在多空都是10个，看了下爆仓，只是合约的资金的话10倍爆仓。但是有监控，所以不太会爆仓，因为可以转从现货转保证金过来。而且每小时都会rebalance，期望的是不会一根小时K涨10倍吧。就是说涨的多的我不管，反正能过滤掉。就怕跌多了一个超级大反弹，一直反弹这样的情况。因为我会一直空它。</p><p>2，过滤到跌的最多的币试试看。</p><p>df_short = df_short[(df_short[&apos;filter_rank&apos;] &lt; 0.9)]</p><p>df_short = df_short[(df_short[&apos;filter_rank&apos;] &gt; 0.2)]</p><p>回测结果</p><p>累积净值 26.66 年化收益 238.82% 最大回撤 -13.33%</p><p>df_short = df_short[(df_short[&apos;filter_rank&apos;] &lt; 0.9)]</p><p>df_short = df_short[(df_short[&apos;filter_rank&apos;] &gt; 0.1)]</p><p>累积净值 30.64 年化收益 256.83% 最大回撤 -15.53%</p><p>df_short = df_short[(df_short[&apos;filter_rank&apos;] &lt; 0.9)]</p><p>df_short = df_short[(df_short[&apos;filter_rank&apos;] &gt; 0.02)]</p><p>累积净值 34.77 年化收益 273.98% 最大回撤 -15.19%</p><p>BWB3， ILLQStd 因子参数128，过滤参数128，0.8Rank过滤，持仓1小时，选币多空都是10个。</p><p>black_list = [&apos;COCOS-USDT&apos;, &apos;PERP-USDT&apos;, &apos;BTC-USDT&apos;, &apos;ETH-USDT&apos;, &apos;TRB-USDT&apos;, &apos;LUNA-USDT&apos;]</p><p>累积净值 36.56 年化收益 281.04% 最大回撤 -13.19%</p><p>BWB3， ILLQStd 因子参数128，过滤参数128，0.9Rank过滤，持仓1小时，选币多空都是10个。</p><p>black_list = [&apos;COCOS-USDT&apos;, &apos;PERP-USDT&apos;, &apos;BTC-USDT&apos;, &apos;ETH-USDT&apos;, &apos;TRB-USDT&apos;, &apos;LUNA-USDT&apos;]</p><p>累积净值 38.14 年化收益 287.06% 最大回撤 -15.34%</p><p>效果差不多。</p><p>空头再删掉一个跌幅最小的币，考虑到最后一个币已经跌了很多了，再做空意义不大，且有反弹的风险。</p><pre data-type="codeBlock" text="    def remove_min_rows(group):
        min_values_index = group[&apos;filter_rank&apos;].nsmallest(1).index
        return group.drop(min_values_index)

    df_short = df_short.groupby(&apos;candle_begin_time&apos;, group_keys=False).apply(remove_min_rows)
"><code>    def remove_min_rows(group):
        min_values_index <span class="hljs-operator">=</span> group[<span class="hljs-string">'filter_rank'</span>].nsmallest(<span class="hljs-number">1</span>).index
        <span class="hljs-keyword">return</span> group.drop(min_values_index)

    df_short <span class="hljs-operator">=</span> df_short.groupby(<span class="hljs-string">'candle_begin_time'</span>, group_keys<span class="hljs-operator">=</span>False).apply(remove_min_rows)
</code></pre><p>累积净值 36.86 年化收益 282.19% 最大回撤 -14.95%</p><p>从回测结果看，效果不明显，不加了。</p><p>20个币试试</p><p>累积净值 38.8 年化收益 289.55% 最大回撤 -12.17%</p><p>0.1and long_nums</p><p>累积净值 38.32 年化收益 287.75% 最大回撤 -11.46%</p><p>20个币不做TRB -LUNA 黑名单试试</p><p>累积净值 41.16 年化收益 298.18% 最大回撤 -13.10%</p><p>实盘策略改进</p><p>BWB3， ILLQStd 因子参数128，过滤参数128，0.9Rank过滤，持仓1小时，选币多空都是20个，黑名单</p><p>&apos;BTC-USDT&apos;, &apos;ETH-USDT, LUNA-USDT, TRB-USDT&apos;。</p>]]></content:encoded>
            <author>keeplearning-2@newsletter.paragraph.com (KeepLearning)</author>
        </item>
        <item>
            <title><![CDATA[ILLQStd因子]]></title>
            <link>https://paragraph.com/@keeplearning-2/illqstd</link>
            <guid>D7facmEPEG4x6daCyR6F</guid>
            <pubDate>Sun, 07 Jan 2024 12:19:30 GMT</pubDate>
            <description><![CDATA[默认的回测参数， (&apos;ILLQStd&apos;, True, 7, 1) 持仓1D，Pct_change_7过滤，0.8百分比过滤。 默认回测时间 start_date = &apos;2021-01-01&apos; end_date = &apos;2023-09-10&apos; 回测结果[(&apos;ILLQStd&apos;, True, 14, 1)]持仓1D，Pct_change_7过滤，0.8百分比过滤。 累积净值 18.5 年化收益 195.81% 最大回撤 -12.04% [(&apos;ILLQStd&apos;, True, 30, 1)]持仓1D，Pct_change_7过滤，0.8百分比过滤。 累积净值 16.54 年化收益 183.73% 最大回撤 -12.17% 对于参数ILLQStd的参数7/14/30，效果差不多。由于预测中，2024年相当于上一个牛市的2020年，回测以下2020年的数据。由于2020年2月9日之前的合约非常少，所以从20200209开始回测。 就回测20200209-20210101 [(&apos;ILLQS...]]></description>
            <content:encoded><![CDATA[<p>默认的回测参数，</p><p>(&apos;ILLQStd&apos;, True, 7, 1) 持仓1D，Pct_change_7过滤，0.8百分比过滤。</p><p>默认回测时间</p><p>start_date = &apos;2021-01-01&apos;</p><p>end_date = &apos;2023-09-10&apos;</p><p>回测结果</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/f24f6d3da60eb21d222216cda464ce59240c56de20707c50ac0bb908b1cc6825.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>[(&apos;ILLQStd&apos;, True, 14, 1)]持仓1D，Pct_change_7过滤，0.8百分比过滤。</p><p>累积净值 18.5 年化收益 195.81% 最大回撤 -12.04%</p><p>[(&apos;ILLQStd&apos;, True, 30, 1)]持仓1D，Pct_change_7过滤，0.8百分比过滤。</p><p>累积净值 16.54 年化收益 183.73% 最大回撤 -12.17%</p><p>对于参数ILLQStd的参数7/14/30，效果差不多。由于预测中，2024年相当于上一个牛市的2020年，回测以下2020年的数据。由于2020年2月9日之前的合约非常少，所以从20200209开始回测。</p><p>就回测20200209-20210101</p><p>[(&apos;ILLQStd&apos;, True, 7, 1)] 持仓1D，Pct_change_7过滤，0.8百分比过滤。</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/8447940349ae04b8f474782f33b9bde0d08943c5a38187dfc45b2ce687c32c63.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>从图上可以看到，在前面大半年的时间内，策略都跑赢了BTC和ETH，但是2020年底牛市启动，就跟不上BTC和ETH的涨幅了。不过总体资金曲线还是向上的，看着比较健康。</p><p>[(&apos;ILLQStd&apos;, True, 14, 1)]持仓1D，Pct_change_7过滤，0.8百分比过滤。</p><p>累积净值 1.81 年化收益 93.60% 最大回撤 -11.62%</p><p>[(&apos;ILLQStd&apos;, True, 30, 1)]持仓1D，Pct_change_7过滤，0.8百分比过滤。</p><p>累积净值 1.81 年化收益 94.12% 最大回撤 -15.06%</p><p>这三个参数区别也不大。</p><p>选币数改为0.05试一下。</p><p>[(&apos;ILLQStd&apos;, True, 7, 1)] 持仓1D，Pct_change_7过滤，0.8百分比过滤。0.05选币</p><p>累积净值 1.89 年化收益 103.44% 最大回撤 -21.63%</p><p>[(&apos;ILLQStd&apos;, True, 14, 1)] 持仓1D，Pct_change_7过滤，0.8百分比过滤。0.05选币</p><p>累积净值 1.74 年化收益 85.93% 最大回撤 -20.06%</p><p>[(&apos;ILLQStd&apos;, True, 30, 1)] 持仓1D，Pct_change_7过滤，0.8百分比过滤。0.05选币</p><p>累积净值 1.19 年化收益 21.19% 最大回撤 -22.30%</p><p>对比0.1的持仓，明显的效果变差。</p><p>那么试试0.2</p><p>[(&apos;ILLQStd&apos;, True, 7, 1)] 持仓1D，Pct_change_7过滤，0.8百分比过滤。0.2选币</p><p>累积净值 1.73 年化收益 83.85% 最大回撤 -10.04%</p><p>[(&apos;ILLQStd&apos;, True, 14, 1)] 持仓1D，Pct_change_7过滤，0.8百分比过滤。0.2选币</p><p>累积净值 1.95 年化收益 110.85% 最大回撤 -8.68%</p><p>[(&apos;ILLQStd&apos;, True, 30, 1)] 持仓1D，Pct_change_7过滤，0.8百分比过滤。0.2选币</p><p>累积净值 2.02 年化收益 119.14% 最大回撤 -9.00%</p><p>怎么感觉选的币越多，效果越好呢。0.3试一下。</p><p>[(&apos;ILLQStd&apos;, True, 7, 1)] 持仓1D，Pct_change_7过滤，0.8百分比过滤。0.3选币</p><p>累积净值 1.76 年化收益 87.60% 最大回撤 -7.41%</p><p>[(&apos;ILLQStd&apos;, True, 14, 1)] 持仓1D，Pct_change_7过滤，0.8百分比过滤。0.3选币</p><p>累积净值 1.73 年化收益 84.40% 最大回撤 -8.11%</p><p>[(&apos;ILLQStd&apos;, True, 30, 1)] 持仓1D，Pct_change_7过滤，0.8百分比过滤。0.3选币</p><p>累积净值 1.9 年化收益 104.59% 最大回撤 -9.84%</p><p>[(&apos;ILLQStd&apos;, True, 7, 1)] 持仓1D，Pct_change_7过滤，0.8百分比过滤。0.5选币</p><p>累积净值 1.63 年化收益 73.01% 最大回撤 -7.85%</p><p>[(&apos;ILLQStd&apos;, True, 14, 1)] 持仓1D，Pct_change_7过滤，0.8百分比过滤。0.5选币</p><p>累积净值 1.6 年化收益 69.24% 最大回撤 -8.76%</p><p>[(&apos;ILLQStd&apos;, True, 30, 1)] 持仓1D，Pct_change_7过滤，0.8百分比过滤。0.5选币</p><p>累积净值 1.59 年化收益 68.36% 最大回撤 -9.79%</p><p>从上面的测试可以看出，总体曲线肯定是向上的，且选的币种越多，回撤越小，但是收益也会降低。如果要跑1D的，就选[(&apos;ILLQStd&apos;, True, 14, 1)] 持仓1D，Pct_change_7过滤，0.8百分比过滤。0.2选币 这个综合来看好一些。</p><p>个人感觉持仓周期是不是一个很关键的元素？也算个参数？</p><p>下面看看持仓7d的效果，</p><p>累积净值 5.27 年化收益 85.50% 最大回撤 -18.61%</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/5ec7d0f7cec3b9de6329efe20cb8e97b8fdd00d2ec70c0cade266642965640b9.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>从测试结果看，持仓越久回测结果越差。</p><p>持仓6H试试</p><p>(&apos;ILLQStd&apos;, True, 6, 1) (&apos;PctChange&apos;, 6) 0.8过滤</p><p>累积净值 1.2 年化收益 7.13% 最大回撤 -39.31%</p><p>这个结果就是说，如果根据前6小时的K线里计算ILLQStd，算出来这6根K线的流动性很差，然后我就买入它，做多它，持仓6小时，这样的回测结果很差。</p><p>结果很差有以下几方面的原因</p><p>1，6小时的K线来算因子不合理</p><p>2，持仓6小时不合理。</p><p>固定以下持仓周期参数试试，测试以下场景，因为前面测试用7天的数据来确定因子，效果不错，那么这里是小时，我给它乘以24，也就是用(&apos;ILLQStd&apos;, True, 7*<em>24, 1) (&apos;PctChange&apos;, 7</em>*24) 0.8过滤，然后还是持仓6小时，看看效果如何。</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/89f678002313a99731f40cc84538ccb795c9f2faf9fd0728880927a9b7bfaf20.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>很不错，比持仓一天的提高好多。持仓6小时没问题，问题出在用6小时数据来计算因子排序不合理。那为什么用7<em>24小时就合理呢？照理说，用6小时数据，我每隔6小时就更新一次排序，应该更接近于小市值啊，相当于我一直持有的是小市值的币种，并且6小时更新一次。那么我用724的数据更新的话，我是用724的数据来确定币种，持仓1天。那么就需要考虑清楚的是为什么我用7</em>*24的数据来确定因子比用6小时的数据更加有效？</p><p>也可以理解啊，一个因子必然有它的参数范围。不可能随变一个参数就能获得好的回测。但是从原理上分析，只要一直持有低流动性的币种，就能获得这个收益。那么就是说，我用6小时算出来的数据不是真正意义上的低流动性币种。那么是不是我用更长时间的数据算出来的因子更具有流动性低的，然后再从持仓时间看，持仓时间越短，效果越好。</p><p>那么我用14*24试试。(&apos;ILLQStd&apos;, True, 14*<em>24, 1) (&apos;PctChange&apos;, 7</em>*24) 0.8过滤，然后还是持仓6小时，回测结果变差。</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/c6c12b7862c7491f14a41c089674f4cbe2f8d3729208af569f87536704d86c98.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>再看看30*24小时试试。</p><p>时间太久，只跑了OFFSET=0的结果如下</p><p>[(&apos;ILLQStd&apos;, True, 720, 1)]</p><p>累积净值 21.39 年化收益 212.18% 最大回撤 -10.38%</p><p>和14*24的效果差不多。</p><p>再降低持仓时间试试，4小时。邢大说过，没有显著提升，不要降低持仓，持仓越久越好。</p><p>[(&apos;ILLQStd&apos;, True, 168, 1)] 持仓4小时，<em>(&apos;PctChange&apos;, 7</em>*24) 0.8过滤</p><p>累积净值 30.64 年化收益 256.82% 最大回撤 -13.55%</p><p>[(&apos;ILLQStd&apos;, True, 336, 1)] 持仓4小时，<em>(&apos;PctChange&apos;, 7</em>*24) 0.8过滤</p><p>累积净值 24.7 年化收益 229.33% 最大回撤 -13.41%</p><p>跟持仓6小时相比，有点提升，但是提升效果不大。</p><p>再试试持仓一小时的</p><p>累积净值 35.07 年化收益 275.16% 最大回撤 -10.94%</p><p>再看看8小时持仓。[(&apos;ILLQStd&apos;, True, 168, 1)] 持仓4小时，<em>(&apos;PctChange&apos;, 7</em>*24) 0.8过滤</p><p>累积净值 23.57 年化收益 223.65% 最大回撤 -11.70%</p><p>那么从回测看，[(&apos;ILLQStd&apos;, True, 168, 1)] 持仓4小时，<em>(&apos;PctChange&apos;, 7</em>*24) 0.8过滤，同样是上面的条件，只是持仓时间不同，有以下的回测结果，只是offset0 对比，</p><p>持仓一小时，</p><p>累积净值 35.07 年化收益 275.16% 最大回撤 -10.94%</p><p>持仓4小时</p><p>累积净值 30.64 年化收益 256.82% 最大回撤 -13.55%</p><p>持仓6小时</p><p>累积净值 27.64 年化收益 240.44% 最大回撤 -10.75%</p><p>持仓8小时</p><p>累积净值 23.57 年化收益 223.65% 最大回撤 -11.70%</p><p>持仓1D</p><p>累积净值 17.08 年化收益 187.16% 最大回撤 -13.09%</p><p>从上面可以看出，持仓越长，回测结果越差。这个可以理解，持仓越长，相当于你对市场的反映越不敏感，也就是说你在持仓周期内，可能持有的并不是最低流动性的币。试试两小时的。</p><p>offset 0,</p><p>累积净值 34.84 年化收益 274.25% 最大回撤 -13.11%</p><p>offset 1,</p><p>累积净值 31.46 年化收益 260.36% 最大回撤 -13.07%</p><p>10000W选定持仓2小时吧，跑2个offset，0.2选币，然后10000/2/2/（340*0.2）=36U，刚好。</p><p>在确定持仓2小时后，再试试其他参数。</p><p>先试试因子参数，14*<em>24</em></p><p>累积净值 28.36 年化收益 246.72% 最大回撤 -11.23%</p><p><em>30</em>*24</p><p>累积净值 25.92 年化收益 235.29% 最大回撤 -11.76%</p><p>从以上可以看出，因子越大，则回测越差。所以定下来因子参数为168。或者可以在168附近继续回测。</p><p>然后固定持仓2H，因子参数168，pct过滤因子参数168，过滤0.8，offset = 0，看看选币百分比是否影响。</p><p>0.1且long_nums，</p><p>累积净值 34.84 年化收益 274.25% 最大回撤 -13.11%</p><p>0.1且0.1</p><p>累积净值 36.63 年化收益 281.29% 最大回撤 -16.69%</p><p>0.2且long_nums，</p><p>累积净值 20.41 年化收益 206.80% 最大回撤 -14.67%</p><p>0.2且0.2，</p><p>累积净值 23.58 年化收益 223.72% 最大回撤 -15.66%</p><p>10个币10个币</p><p>累积净值 38.25 年化收益 287.49% 最大回撤 -13.71%</p><p>15个币15个币</p><p>累积净值 37.85 年化收益 285.97% 最大回撤 -13.11%</p><p>20个币20个币</p><p>累积净值 32.63 年化收益 265.25% 最大回撤 -14.56%</p><p>可以看到，随着选币数量的增多，收益在下降。</p><p>我这个持仓时间短，那么我是不是可以少选币啊，如果空头一个币暴涨，那么下一个小时就选不到了。应该不会爆仓吧。</p><p>那么我不妨用1H且多空都10个币怎么样？</p><p>持仓1H，参数因子168，过滤因子参数168，0.8过滤，10个币。</p><p>10个币持仓到时候看看强平的价格。</p><p>累积净值 44.8 年化收益 310.92% 最大回撤 -21.79%</p><p>就跑这个吧</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/0ccbc92c7990af243f6a879281d5791f8f07e25b0561e0dd536c34e7d751e223.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>分析以下中间-21%回撤的情况。除了这个回撤大，其他回撤都可以接受。</p><p>线跑这个吧</p><p>再试下0.7过滤</p><p>累积净值 20.66 年化收益 208.18% 最大回撤 -23.12%</p><p>很不稳定啊，下降好多。</p><p>0.9过滤呢？</p><p>累积净值 40.92 年化收益 297.32% 最大回撤 -21.12%</p><p>选这个吧0.9过滤，因为默认代码是0.8，所以我们这里选个0.9好了。</p><p>那么实盘参数就是选币个数多空一样都是10个，总共20个币，因子参数128，过滤参数128.持仓1H，过滤0.9百分比。跑起来！！！</p>]]></content:encoded>
            <author>keeplearning-2@newsletter.paragraph.com (KeepLearning)</author>
        </item>
        <item>
            <title><![CDATA[策略的思考]]></title>
            <link>https://paragraph.com/@keeplearning-2/71ZiBq8nTffArFeSwthq</link>
            <guid>71ZiBq8nTffArFeSwthq</guid>
            <pubDate>Fri, 05 Jan 2024 04:14:25 GMT</pubDate>
            <description><![CDATA[BWB3可以做过滤，可以做纯多头，也可以纯空头。那么是不是可以设计一个因子，这个因子既包含趋势方向又包含趋势强度，然后做多趋势为1且强度最高的那些币，然后做空趋势为-1，且强度最高的那些币呢。 问了GPT，给了下面一个因子 df[&apos;short_ma&apos;] = df[&apos;close&apos;].rolling(window=10).mean() df[&apos;long_ma&apos;] = df[&apos;close&apos;].rolling(window=20).mean() df[&apos;trend_direction&apos;] = (df[&apos;short_ma&apos;] - df[&apos;long_ma&apos;]) / df[&apos;short_ma&apos;] df[&apos;rsi&apos;] = ta.momentum.RSIIndicator(df[&apos;close&apos;], window=n).rsi() df[&apos;trend_confidence&apos;] = d...]]></description>
            <content:encoded><![CDATA[<p>BWB3可以做过滤，可以做纯多头，也可以纯空头。那么是不是可以设计一个因子，这个因子既包含趋势方向又包含趋势强度，然后做多趋势为1且强度最高的那些币，然后做空趋势为-1，且强度最高的那些币呢。</p><p>问了GPT，给了下面一个因子</p><p>df[&apos;short_ma&apos;] = df[&apos;close&apos;].rolling(window=10).mean()</p><p>df[&apos;long_ma&apos;] = df[&apos;close&apos;].rolling(window=20).mean()</p><p>df[&apos;trend_direction&apos;] = (df[&apos;short_ma&apos;] - df[&apos;long_ma&apos;]) / df[&apos;short_ma&apos;]</p><p>df[&apos;rsi&apos;] = ta.momentum.RSIIndicator(df[&apos;close&apos;], window=n).rsi()</p><p>df[&apos;trend_confidence&apos;] = df[&apos;rsi&apos;]</p><p>df[factor_name] = df[&apos;trend_confidence&apos;] * df[&apos;trend_direction&apos;]</p><p>总体的思路是用长短均线判断趋势，然后用RSI指标判断趋势的强度。</p><p>那如果我在过滤那块，比如对long的币过滤，我加上df[&apos;trend_direction&apos;]&gt;0的条件，那如果整个市场是熊市的话，就不做多了。</p><p>试试看</p><p>1，</p><p>多空同时选币，</p><p>(&apos;RsiPlusQuShi&apos;, False, 7, 1)</p><p>过滤如下</p><p>df_long = df_long[(df_long[&apos;TrendDirection_7&apos;] &gt; 0)]</p><p>df_short = df_short[(df_short[&apos;TrendDirection_7&apos;] &lt; 0)]</p><p>累积净值 1.06 年化收益 2.02% 最大回撤 -75.25%</p><p>这个是动量因子，动量因子还是对市场的状态要求比较高，比如是牛市动量因子就NB，熊市和震荡市就不行。不管怎么过滤回测都不好。</p><p>那么跨越牛熊的因子只能是普适性的因子，比如市值（流动性）。</p><p>2，纯多头动量</p><p>(&apos;RsiPlusQuShi&apos;, False, 7, 1)</p><p>过滤 df_long = df_long[(df_long[&apos;TrendDirection_7&apos;] &gt; 0)]</p><p>累积净值 0.27 年化收益 -38.26% 最大回撤 -98.75%</p><p>3，纯多头动量</p><p>(&apos;RsiPlusQuShi&apos;, False, 7, 1)</p><p>过滤 df_long = df_long[(df_long[&apos;TrendDirection_7&apos;] &gt; 0)]</p><p>df_long = df_long[(df_long[&apos;Rsi_7&apos;] &gt; 70)]</p><p>看着让RSI特别大，那么熊市和牛市就选不到币了。</p><p>累积净值 2.81 年化收益 46.78% 最大回撤 -99.19%</p><p>这个牛市的时候还可以，达到了40多倍的收益。</p>]]></content:encoded>
            <author>keeplearning-2@newsletter.paragraph.com (KeepLearning)</author>
        </item>
        <item>
            <title><![CDATA[关于低波异象的思考]]></title>
            <link>https://paragraph.com/@keeplearning-2/7yxGFnCYVRh8NvbHJR0r</link>
            <guid>7yxGFnCYVRh8NvbHJR0r</guid>
            <pubDate>Thu, 04 Jan 2024 10:31:25 GMT</pubDate>
            <description><![CDATA[来源，郭毅老板的直播，可以再去听听。 一般来说，都是高风险高收益，但是有一种数据统计的结果却是低波动性未来会有更高的收益。 可以作为bwb3的因子，回测结果如下 df[factor_name] = df[&apos;close&apos;].pct_change().rolling(window=n).std() (&apos;Volatility&apos;, True, 30, 1) 不过滤 1D 累积净值 0.75 年化收益 -10.01% 最大回撤 -44.21% (&apos;Volatility&apos;, False, 30, 1) 不过滤 1D 累积净值 0.56 年化收益 -19.35% 最大回撤 -61.05% (&apos;Volatility&apos;, True, 7, 1) 不过滤 1D 累积净值 0.54 年化收益 -20.64% 最大回撤 -58.34% 如果我没弄错的话，如果以上测试数据没错的话，说明低波现象在币圈不存在？那么问题来了，默认策略流动性因子会不会也失效呢？如果低波异象现象是经济学的潜在规律，那么为什么在币圈不适用呢？ GPT的回...]]></description>
            <content:encoded><![CDATA[<p>来源，郭毅老板的直播，可以再去听听。</p><p>一般来说，都是高风险高收益，但是有一种数据统计的结果却是低波动性未来会有更高的收益。</p><p>可以作为bwb3的因子，回测结果如下</p><p>df[factor_name] = df[&apos;close&apos;].pct_change().rolling(window=n).std()</p><p>(&apos;Volatility&apos;, True, 30, 1) 不过滤 1D</p><p>累积净值 0.75 年化收益 -10.01% 最大回撤 -44.21%</p><p>(&apos;Volatility&apos;, False, 30, 1) 不过滤 1D</p><p>累积净值 0.56 年化收益 -19.35% 最大回撤 -61.05%</p><p>(&apos;Volatility&apos;, True, 7, 1) 不过滤 1D</p><p>累积净值 0.54 年化收益 -20.64% 最大回撤 -58.34%</p><p>如果我没弄错的话，如果以上测试数据没错的话，说明低波现象在币圈不存在？那么问题来了，默认策略流动性因子会不会也失效呢？如果低波异象现象是经济学的潜在规律，那么为什么在币圈不适用呢？</p><p>GPT的回答是，波动性对做空做多没有预示作用，但是流动性确实GPT给的回答是流动性，市值较小的话，会有较高的收益。</p>]]></content:encoded>
            <author>keeplearning-2@newsletter.paragraph.com (KeepLearning)</author>
        </item>
        <item>
            <title><![CDATA[ILLQ因子]]></title>
            <link>https://paragraph.com/@keeplearning-2/illq</link>
            <guid>Z6vvZPWGahNbtks7K0Qm</guid>
            <pubDate>Thu, 04 Jan 2024 10:07:01 GMT</pubDate>
            <description><![CDATA[1，pct过滤0.6/0.9的话，净值降低。0.8感觉最优 2，流动性差，喜欢过去跌的多的币，流动性好，喜欢过去涨的多的币。所以对于BWB3来说，都不喜欢涨的多的币，所以用pct过滤掉前20%的币效果很好。也就是说，在币圈，大市值喜欢趋势特征，小市值呈现反转特性。小市值跌多了容易涨，大市值跌多了还是跌。那我就做多小市值且跌多了的币，做空大市值且跌多了的币。那么纯多头的话，我就挑选小市值（低流动性也行）+跌的最多的币种。 看邢大的视频看看怎么得出来的。 一些测试结论： 1， factor_list = [ (&apos;ILLQStd&apos;, True, 7, 1), # 因子名（和factors文件中相同），排序方式，参数，权重。 (&apos;PctChange&apos;, True, 7, 0.5), (&apos;LowPrice&apos;, True, 7, 1), ] 无过滤 1D 累积净值 12.11 年化收益 152.71% 最大回撤 -14.85% 2， factor_list = [ (&apos;ILLQStd&apos;, True, 7, 1),...]]></description>
            <content:encoded><![CDATA[<p>1，pct过滤0.6/0.9的话，净值降低。0.8感觉最优</p><p>2，流动性差，喜欢过去跌的多的币，流动性好，喜欢过去涨的多的币。所以对于BWB3来说，都不喜欢涨的多的币，所以用pct过滤掉前20%的币效果很好。也就是说，在币圈，大市值喜欢趋势特征，小市值呈现反转特性。小市值跌多了容易涨，大市值跌多了还是跌。那我就做多小市值且跌多了的币，做空大市值且跌多了的币。那么纯多头的话，我就挑选小市值（低流动性也行）+跌的最多的币种。</p><p>看邢大的视频看看怎么得出来的。</p><p>一些测试结论：</p><p>1，</p><p>factor_list <strong>=</strong> [ (&apos;ILLQStd&apos;, True, 7, 1), # 因子名（和factors文件中相同），排序方式，参数，权重。 (&apos;PctChange&apos;, True, 7, 0.5), (&apos;LowPrice&apos;, True, 7, 1), ] 无过滤 1D</p><p>累积净值 12.11 年化收益 152.71% 最大回撤 -14.85%</p><p>2，</p><p>factor_list = [ (&apos;ILLQStd&apos;, True, 7, 1), # 因子名（和factors文件中相同），排序方式，参数，权重。 (&apos;PctChange&apos;, True, 7, 1), (&apos;LowPrice&apos;, True, 7, 1), ] 无过滤 1D</p><p>累积净值 9.45 年化收益 130.43% 最大回撤 -15.62%</p><p>3，</p><p>factor_list = [ (&apos;ILLQStd&apos;, True, 7, 1), # 因子名（和factors文件中相同），排序方式，参数，权重。 (&apos;LowPrice&apos;, True, 7, 1), ] pct change过滤 0.8 1D</p><p>累积净值 12.75 年化收益 157.60% 最大回撤 -19.35%</p><p>4,</p><p>(&apos;ILLQStd&apos;, True, 7, 1),pct change过滤 0.8 1D</p><p>累积净值 17.08 年化收益 187.16% 最大回撤 -13.09%</p><p>对比3和4，加入low price因子感觉是负收益。</p><p>5，</p><p>factor_list = [ (&apos;ILLQStd&apos;, True, 7, 1), # 因子名（和factors文件中相同），排序方式，参数，权重。 (&apos;LowPrice&apos;, True, 7, 1), (&apos;PctChange&apos;, True, 7, 1), ] 无过滤 1D 纯多头</p><p>累积净值 84.96 年化收益 421.27% 最大回撤 -71.65%</p><p>6，</p><p>factor_list = [ (&apos;ILLQStd&apos;, True, 7, 1), # 因子名（和factors文件中相同），排序方式，参数，权重。 (&apos;LowPrice&apos;, True, 7, 1), 无过滤 1D 纯多头</p><p>累积净值 47.62 年化收益 320.34% 最大回撤 -72.07%</p><p>7,</p><p>factor_list = [ (&apos;ILLQStd&apos;, True, 7, 1), # 因子名（和factors文件中相同），排序方式，参数，权重。 (&apos;LowPrice&apos;, True, 7, 1), pct过滤0.8 1D 纯多头</p><p>累积净值 63.75 年化收益 368.49% 最大回撤 -71.64%</p><p>8，</p><p>factor_list = [ (&apos;ILLQStd&apos;, True, 7, 1), # 因子名（和factors文件中相同），排序方式，参数，权重。pct过滤0.8 1D 纯多头</p><p>累积净值 114.03 年化收益 481.54% 最大回撤 -67.42%</p><p>对比纯多头策略，还是单个因子ILLQStd最好。</p><p>9，</p><p>[(&apos;NetTaBuyStd&apos;, True, 7, 1)] pct过滤0.8 1D</p><p>累积净值 12.22 年化收益 153.54% 最大回撤 -13.97%</p><p>10，</p><p>[(&apos;NetTaBuyStd&apos;, True, 30, 1)] pct过滤0.8 1D</p><p>累积净值 12.87 年化收益 158.50% 最大回撤 -13.27%</p><p>思考因子改进的过程，改进后的因子包含基础因子的信息，但是包含更多的信息。比如成交额，然后ILLQ，然后净流入</p><p>11，</p><p>[(&apos;NetTaBuyStd&apos;, True, 30, 1)] pct过滤0.8 1D 纯多头 ---- 也还可以。</p><p>累积净值 89.24 年化收益 430.89% 最大回撤 -68.78%</p>]]></content:encoded>
            <author>keeplearning-2@newsletter.paragraph.com (KeepLearning)</author>
        </item>
        <item>
            <title><![CDATA[VCV因子]]></title>
            <link>https://paragraph.com/@keeplearning-2/vcv</link>
            <guid>w1o2eIkCIqSTdcXD1dCL</guid>
            <pubDate>Thu, 04 Jan 2024 05:01:36 GMT</pubDate>
            <description><![CDATA[来源：郭毅老板的直播 思考：这个因子表征的是知情交易者的占比。 结论： VCV因子，成交量标准差/成交量均值。 越小越好，越大表示知情交易者占比越高，个股未来走势越弱，用于BWB3 实现：成交额的标准差/成交额的平均值，具体为什么这样能表征知情交易者的占比，可以会看郭老板的视频 df[factor_name] = df[&apos;quote_volume&apos;].rolling(n).std() / df[&apos;quote_volume&apos;].rolling(n).mean() BWB3回测结果： 以1d为持仓周期的话，参数7是最好的，用(&apos;PctChange&apos;, 7)过滤。看着也是单调上升的，效果比基于流动性的因子差。测试了参数14/30，都更差，而且参数越大，结果越差。所以考虑使用1h来测试。是不是币圈对知情交易者1d显得太长了。 如果(&apos;VCV&apos;, False, 7, 1)，则是个归零策略。看看小时级别的。 测试了4小时的，结果很差。这个因子在币圈效果不行，是不是哪里弄错了？不知道为什么]]></description>
            <content:encoded><![CDATA[<p>来源：郭毅老板的直播</p><p>思考：这个因子表征的是知情交易者的占比。</p><p>结论：</p><p>VCV因子，成交量标准差/成交量均值。 越小越好，越大表示知情交易者占比越高，个股未来走势越弱，用于BWB3</p><p>实现：成交额的标准差/成交额的平均值，具体为什么这样能表征知情交易者的占比，可以会看郭老板的视频</p><p>df[factor_name] = df[&apos;quote_volume&apos;].rolling(n).std() / df[&apos;quote_volume&apos;].rolling(n).mean()</p><p>BWB3回测结果：</p><p>以1d为持仓周期的话，参数7是最好的，用(&apos;PctChange&apos;, 7)过滤。</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/fed3cf045e332576ab7c08f8c7188c23d82f058436717cef1b58700a70d09de1.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>看着也是单调上升的，效果比基于流动性的因子差。测试了参数14/30，都更差，而且参数越大，结果越差。所以考虑使用1h来测试。是不是币圈对知情交易者1d显得太长了。</p><p>如果(&apos;VCV&apos;, False, 7, 1)，则是个归零策略。看看小时级别的。</p><p>测试了4小时的，结果很差。这个因子在币圈效果不行，是不是哪里弄错了？不知道为什么</p>]]></content:encoded>
            <author>keeplearning-2@newsletter.paragraph.com (KeepLearning)</author>
        </item>
        <item>
            <title><![CDATA[自己想的一些策略]]></title>
            <link>https://paragraph.com/@keeplearning-2/5BNRuYTRrD6FFedkgx90</link>
            <guid>5BNRuYTRrD6FFedkgx90</guid>
            <pubDate>Mon, 01 Jan 2024 08:42:04 GMT</pubDate>
            <description><![CDATA[1. 基于volumn的保温杯中性策略，效果比ILLQStd差一些。问了GPT，一般用于中性策略的因子，市值因子，跟流动性差不多，还有波动性因子。 2，不过测试了波动性因子，效果并不明显。 df[factor_name] = df[&apos;close&apos;].pct_change().rolling(window=n).std() 流动性因子效果接近，还不错。 下面这个思路也不行。gpt也说波动性对未来趋势没法预测。 3.做多跌的多的，做空跌的少的 df[factor_name] = df[&apos;close&apos;].rolling(window=n, min_periods=1).min() / df[&apos;close&apos;] 也没有明显的特征。不是说跌的多的就能涨，涨的多的就能跌。币圈还是有很大的动量效应。 4.本想着用RSI来试试看，效果也不行。 df[factor_name] = ta.momentum.RSIIndicator(df[&apos;close&apos;], window=n).rsi()。就是说RSI越大，并不一定涨或者跌...]]></description>
            <content:encoded><![CDATA[<p>1.</p><p>基于volumn的保温杯中性策略，效果比ILLQStd差一些。问了GPT，一般用于中性策略的因子，市值因子，跟流动性差不多，还有波动性因子。</p><p>2，不过测试了波动性因子，效果并不明显。</p><p>df[factor_name] = df[&apos;close&apos;].pct_change().rolling(window=n).std()</p><p>流动性因子效果接近，还不错。</p><p>下面这个思路也不行。gpt也说波动性对未来趋势没法预测。</p><p>3.做多跌的多的，做空跌的少的</p><p>df[factor_name] = df[&apos;close&apos;].rolling(window=n, min_periods=1).min() / df[&apos;close&apos;]</p><p>也没有明显的特征。不是说跌的多的就能涨，涨的多的就能跌。币圈还是有很大的动量效应。</p><p>4.本想着用RSI来试试看，效果也不行。</p><p>df[factor_name] = ta.momentum.RSIIndicator(df[&apos;close&apos;], window=n).rsi()。就是说RSI越大，并不一定涨或者跌。</p><p>为什么只有邢大能找到这种流动性因子呢？</p><p>5，20240118</p><p>bwb3框架，纯多头，涨的最多的选10个币，跌的最多的选10个币，做成20个币的纯多头，</p><p>结果是归零。</p><p>df_long[&apos;PctChange_168_abs&apos;] = df_long.groupby(&apos;candle_begin_time&apos;)[&apos;PctChange_168&apos;].transform(lambda x: x.abs()) df_long = df_long.loc[ df_long.groupby(&apos;candle_begin_time&apos;)[&apos;PctChange_168_abs&apos;].nlargest(20).reset_index()[&apos;level_1&apos;]]</p><p>再试试选涨幅前20的币，纯多头。</p><p>df_long = df_long.loc[ df_long.groupby(&apos;candle_begin_time&apos;)[&apos;PctChange_168&apos;].nlargest(20).reset_index()[&apos;level_1&apos;]]</p><p>也归零。</p><p>是不是128参数太大了，7小时试试，争取赶上暴涨，然后跟一波。</p><p>df_long = df_long.loc[ df_long.groupby(&apos;candle_begin_time&apos;)[&apos;PctChange_1&apos;].nlargest(20).reset_index()[&apos;level_1&apos;]]</p><p>急速归零。</p><p>这方法不行，因子还是需要那种基本面或者有理论经济基础的，比如说netbuy，买的人多就能涨，小市值能涨的更多。不能是量化因子。因为量化因子随参数的波动很大。量化因子最好用来过滤。不要做主因子。</p><p>20240122</p><p>如果一根小时K涨了10%，我就买入。想着会不会有惯性原理。</p><p>回测py：</p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="http://guanxing.py">guanxing.py</a> 段落1</p><p>回测条件：</p><p>当一根K线涨幅超过0.1时，就在下一根K线开始卖出（注意时卖出，不是买入，相当于一根K线涨幅超过10%，认为涨的太多了，做空它），就持有一个小时后平仓。</p><p>spot数据**：**</p><p>币种大于0的百分比 72.53668763102725 平均利润 4346.7856497075945 大于0的利润总和,大于0币种的平均利润 2438275.423893083 7047.038797378852 小于0的利润总和,小于0币种的平均利润 -364858.6689825602 -2785.1806792561847</p><p>如果改成原来自己想的，超过10%，然后买入，看看下面的回测结果</p><p>币种大于0的百分比 22.431865828092242 平均利润 -4346.7856497075945 大于0的利润总和,大于0币种的平均利润 364858.66898256005 3409.8941026407483 小于0的利润总和,小于0币种的平均利润 -2438275.423893083 -6589.9335780894135</p><p>结果很差。所以自己想的策略不太靠谱。</p><p>相当于对于小时K，大涨后跌的概率会变大，所以就是做空。那么只能用swap来回测。</p><p>币种大于0的百分比 48.818897637795274 平均利润 -343.16174748844156 大于0的利润总和,大于0币种的平均利润 157288.59833490054 1268.4564381846817 小于0的利润总和,小于0币种的平均利润 -244451.6821969647 -1880.397555361267</p><p>竟然是负的平均利润。就是说如果纯在合约做，则是亏本的，但是加上现货，则是赚的。</p><p>真的是不让做的能赚钱，只有现货，无法做空。</p><p>那我如果在合约里做多呢？</p><p>币种大于0的百分比 41.34 平均利润 380.62 币种小于于0的百分比 48.82 大于0的利润总和,大于0币种的平均利润 244451.68 2328.11 小于0的利润总和,小于0币种的平均利润 -157288.6 -1055.63</p><p>那么结论是，合约里如果一根K线涨了10%以上，做多下一根K线，能赚钱。而在现货中，则需要做空才能赚钱，做多会亏的很惨。</p><p>现货的威力那么大么？不一定，因为现货时间早，可能跟历史的回测也有关系。swap和spot回测时间是不一样的。</p><p>难道是一个币种在只有现货的时候需要做空？而在有了合约以后则需要做多？</p><p>可以以合约上线的时间为分割点做一个统计。这种现象是由于下面哪种因素导致的呢？</p><p>1，合约上线时间晚，跟最近几年的行情有关系</p><p>2，现货不能做空。</p><p>那么就先看看第一种原因</p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="http://guanxing.py">guanxing.py</a> 段落2</p><p>第一种情况，将有合约的币种从上线合约开始作为分割点，分别计算只有spot的时段和上线swap以后的时间 都是涨10%，做空下一根K。</p><p>结果如下</p><p>spot大于0的个数 144</p><p>swap大于0的个数 114</p><p>总是是233个合约，相当于当一个币种上线了合约后，做空的收益会变差。只有spot的时候，做空利润为正的百分比61.8%，然后上线合约后48%。只有spot的平均利润 1769，上线swap后的平均利润-398.</p><p>那么如果我现在只统计只有spot的时候会是什么情况呢？</p><p><a target="_blank" rel="noopener noreferrer nofollow ugc" class="dont-break-out" href="http://guanxing.py">guanxing.py</a> 段落3</p><p>spot大于0的个数 332 总个数 470</p><p>平均值4200，总和1982183，</p><p>总交易次数 14297</p><p>大概算了下，每小时的交易次数 14297/24/365/4 = 0.4次。</p><p>每次交易的平均利润 = 1982183/14297=138刀/10000=1.38%。</p><p>然后其实杠杆那边是可以做空大部分的币的，可以试一试。就是回测没有考虑到手续费和杠杆借币的情况。先可以程序监控，然后手工做几天试试。看这个1.38%每次交易盈利，应该够手续费和杠杆借币的钱了。</p>]]></content:encoded>
            <author>keeplearning-2@newsletter.paragraph.com (KeepLearning)</author>
        </item>
        <item>
            <title><![CDATA[策略：当BTC大幅下跌时，看哪些币跌的少，是否牛市的时候涨的多and抄底策略]]></title>
            <link>https://paragraph.com/@keeplearning-2/btc-and</link>
            <guid>msFQtDsBy0PFEMUrcgzV</guid>
            <pubDate>Sun, 31 Dec 2023 07:57:03 GMT</pubDate>
            <description><![CDATA[有哪些币在比特币大跌的时候，跌的比BTC少，然后分析后面的走势是不是比其他的币种涨的多。大跌的时候做多跌的少的，做空跌的多的。 文件： chose_good_coin_when_btc_drop.py 结论：没有相关性。 BTC在2020-03-12时候跌了39%多，统计这一天个币种的跌幅，比BTC跌的少的就那么几个，然后再统计从 start_date = &apos;2020-03-10&apos; end_date = &apos;2023-12-31&apos; 中各币种的最大值的最小值，取倍数。下面还有好多币种的数据。数据中把好几百倍的都删掉了。可以312看到比BTC跌的少的就8个币种，后面的涨幅都很一般，甚至比涨幅的平均值还低。 下面再看看在BTC一天之内跌去10%或者更多的时候，这一天的close是不是在一定时间内的最低值。从2017年开始，总共发生了上面这些BTC单日跌幅大于10%的事件。确认下当天的close和围绕这一天前15天后15天的close最小值，这两者的比值。写Python太麻烦，肉眼看看。 从上面的时间也可以看出来，好多跌10%以上的时间也挨得很近。所...]]></description>
            <content:encoded><![CDATA[<p>有哪些币在比特币大跌的时候，跌的比BTC少，然后分析后面的走势是不是比其他的币种涨的多。大跌的时候做多跌的少的，做空跌的多的。</p><p>文件：</p><p>chose_good_coin_when_btc_drop.py</p><p>结论：没有相关性。</p><p>BTC在2020-03-12时候跌了39%多，统计这一天个币种的跌幅，比BTC跌的少的就那么几个，然后再统计从</p><p>start_date = &apos;2020-03-10&apos; end_date = &apos;2023-12-31&apos;</p><p>中各币种的最大值的最小值，取倍数。</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/7f403f9a0647ae7d7b297d9f30f2add9b87ff975fa2dc59c090d1c728ff9042a.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>下面还有好多币种的数据。数据中把好几百倍的都删掉了。可以312看到比BTC跌的少的就8个币种，后面的涨幅都很一般，甚至比涨幅的平均值还低。</p><p>下面再看看在BTC一天之内跌去10%或者更多的时候，这一天的close是不是在一定时间内的最低值。</p><figure float="none" data-type="figure" class="img-center" style="max-width: null;"><img src="https://storage.googleapis.com/papyrus_images/6331b5e8f1ee0b1d90af17d552448baf168a7d50d2f9283357143201726af0c8.png" alt="" blurdataurl="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACwAAAAAAQABAAACAkQBADs=" nextheight="600" nextwidth="800" class="image-node embed"><figcaption HTMLAttributes="[object Object]" class="hide-figcaption"></figcaption></figure><p>从2017年开始，总共发生了上面这些BTC单日跌幅大于10%的事件。确认下当天的close和围绕这一天前15天后15天的close最小值，这两者的比值。写Python太麻烦，肉眼看看。</p><p>从上面的时间也可以看出来，好多跌10%以上的时间也挨得很近。所以10%这个跌幅并不是底。要说真是底，那么312那次是真的底。312open和low的差价4410/7934.58 = 55%，所以现在可以挂个价格，每天调整一次，挂每天收盘价的65%，考虑到BTC市值变大，波动会变小一点。不能挂山寨币，必须挂BTC的限价单。因为山寨币有可能自己跌，而大盘没有跌。如果买到了，可以考虑整体换成山寨币持有。</p><p>如果按照牛市时间线来推算的话，这个312时刻应该发生在2024年，所以别急，等待2024年这一时刻吧。312后，313的最低值其实更低，low到了3782.13.</p><p>设定几个条件来抄底吧？</p><p>1，单日跌幅&gt;30%</p><p>2，btc价格低于2W</p>]]></content:encoded>
            <author>keeplearning-2@newsletter.paragraph.com (KeepLearning)</author>
        </item>
    </channel>
</rss>