{"id":17012,"date":"2022-10-11T04:02:08","date_gmt":"2022-10-10T20:02:08","guid":{"rendered":"https:\/\/www.tejwin.com\/?post_type=insight&#038;p=17012"},"modified":"2026-02-25T15:57:29","modified_gmt":"2026-02-25T07:57:29","slug":"monthly-sales-growth-rate-application-strategy","status":"publish","type":"insight","link":"https:\/\/www.tejwin.com\/en\/insight\/monthly-sales-growth-rate-application-strategy\/","title":{"rendered":"Monthly sales growth rate application strategy"},"content":{"rendered":"\n<p id=\"b238\">We use yoy and mom of monthly sales of Taiwan listed companies to establish strategies and observe the win rate and return.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter caption-align-center\"><img decoding=\"async\" src=\"https:\/\/www.tejwin.com\/wp-content\/uploads\/1_1ELiytHwsUUKiyc1gMKtQqw.png\" alt=\"\"\/><figcaption class=\"wp-element-caption\">Photo by&nbsp;<a href=\"https:\/\/unsplash.com\/@gtomassetti?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\" rel=\"noreferrer noopener\" target=\"_blank\">Giorgio Tomassetti<\/a>&nbsp;on&nbsp;<a href=\"https:\/\/unsplash.com\/s\/photos\/sales-growth?utm_source=unsplash&amp;utm_medium=referral&amp;utm_content=creditCopyText\" rel=\"noreferrer noopener\" target=\"_blank\">Unsplash<\/a><\/figcaption><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\" id=\"23fd\">Keyword\uff1aApplication\u3001Monthly sales\u3001Backtesting<\/h4>\n\n\n\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_81 counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<label for=\"ez-toc-cssicon-toggle-item-69f11e1c68715\" class=\"ez-toc-cssicon-toggle-label\"><span class=\"ez-toc-cssicon\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/label><input type=\"checkbox\"  id=\"ez-toc-cssicon-toggle-item-69f11e1c68715\"  aria-label=\"Toggle\" \/><nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/www.tejwin.com\/en\/insight\/monthly-sales-growth-rate-application-strategy\/#Highlights\" >Highlights<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/www.tejwin.com\/en\/insight\/monthly-sales-growth-rate-application-strategy\/#Preface\" >Preface<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/www.tejwin.com\/en\/insight\/monthly-sales-growth-rate-application-strategy\/#The_Editing_Environment_and_Module_Required\" >The Editing Environment and Module Required<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/www.tejwin.com\/en\/insight\/monthly-sales-growth-rate-application-strategy\/#Database\" >Database<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/www.tejwin.com\/en\/insight\/monthly-sales-growth-rate-application-strategy\/#Data_import\" >Data import<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/www.tejwin.com\/en\/insight\/monthly-sales-growth-rate-application-strategy\/#Conclusion\" >Conclusion<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/www.tejwin.com\/en\/insight\/monthly-sales-growth-rate-application-strategy\/#Source_Code\" >Source Code<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/www.tejwin.com\/en\/insight\/monthly-sales-growth-rate-application-strategy\/#Extended_Reading\" >Extended Reading<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/www.tejwin.com\/en\/insight\/monthly-sales-growth-rate-application-strategy\/#Related_Link\" >Related Link<\/a><\/li><\/ul><\/nav><\/div>\n<h2 class=\"wp-block-heading\" id=\"8092\"><span class=\"ez-toc-section\" id=\"Highlights\"><\/span><strong>Highlights<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p id=\"c76a\">Difficulties: \u2605\u2605\u2606\u2606\u2606<br>We use yoy and mom as our buy&amp;sell point for trading strategy.<br>Advice: The backtesting framework in this paper can refer to&nbsp;<a href=\"https:\/\/medium.com\/tej-api-financial-data-anlaysis\/quant-market-strength-indicators-trade-c108dbfa549b\" target=\"_blank\" rel=\"noopener\">\u3010Quant\u3011 Market strength indicator trade<\/a>. For readers who are not familiar with the backtesting, they can read the&nbsp;<a href=\"https:\/\/medium.com\/tej-api-financial-data-anlaysis\/quant-2-technical-analysis-2958435a8922\" target=\"_blank\" rel=\"noopener\">\u3010Quant\u3011Technical analysis<\/a>&nbsp;to realize the process of backtesting in more detail.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"1fcc\"><span class=\"ez-toc-section\" id=\"Preface\"><\/span><strong>Preface<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p id=\"d6ff\">According to the Securities and Exchange Act 36, the listed companies should announce and report its operation of the previous month before the 10th day of each month. Monthly sales are a particular information in the market. Foreign market rarely releases information about monthly sales. Therefore, it may have a good effect to help trading decision. We use yoy and mom to measure the return and win rate under this strategy. Due to the volatility of mom is high, the parameter of rolling window set 10, while the yoy set 5.<\/p>\n\n\n\n<p id=\"e47e\">1. Entry condition: mom more than 10 months average of mom and yoy more than 10 months average of yoy.<\/p>\n\n\n\n<p id=\"54a7\">2. Exit condition: mom less than 10 months average of mom and yoy less than 10 months average of yoy.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"579f\"><span class=\"ez-toc-section\" id=\"The_Editing_Environment_and_Module_Required\"><\/span><strong>The Editing Environment and Module Required<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p id=\"872c\">This article uses Mac OS as system and jupyter as editor.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">import pandas as pd<br>import numpy as np<br>import tejapi<br>import matplotlib.pyplot as plt<br>import matplotlib.transforms as transforms<br>from matplotlib.font_manager import FontProperties<br>plt.rcParams['font.sans-serif'] = ['Arial Unicode MS'] # \u89e3\u6c7aMAC\u96fb\u8166 plot\u4e2d\u6587\u554f\u984c<br>plt.rcParams['axes.unicode_minus'] = False<br>tejapi.ApiConfig.api_key = \"Your Key\"<br>tejapi.ApiConfig.ignoretz = True<\/pre>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"37d8\"><span class=\"ez-toc-section\" id=\"Database\"><\/span><strong>Database<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p id=\"a6f8\"><a href=\"https:\/\/api.tej.com.tw\/columndoc.html?subId=107\" rel=\"noreferrer noopener\" target=\"_blank\">Security properties Data Table (TWN\/ANPRCSTD)<\/a><br><a href=\"https:\/\/api.tej.com.tw\/columndoc.html?subId=46\" rel=\"noreferrer noopener\" target=\"_blank\">Listed company adjusted stock price(daily)-ex-right and dividends adjustment (TWN\/APRCD1)<\/a><br><a href=\"https:\/\/api.tej.com.tw\/columndoc.html?subId=20\" rel=\"noreferrer noopener\" target=\"_blank\">Monthly sales (TWN\/ASALE)<\/a><\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"9069\"><span class=\"ez-toc-section\" id=\"Data_import\"><\/span><strong>Data import<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p id=\"9da1\">Since 2013, the disclosure method of monthly sales data has been replaced by consolidated data. Therefore, we select data from April 2013 to the end of 2021. In order to make the later loop code more concise, the part of data import is written as a function.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">data=tejapi.get('TWN\/ANPRCSTD' ,chinese_column_name=True )<br>select=data[\"\u4e0a\u5e02\u5225\"].unique()<br>select=select[1:3]<br>condition =(data[\"\u4e0a\u5e02\u5225\"].isin(select)) &amp; ( data[\"\u8b49\u5238\u7a2e\u985e\u540d\u7a31\"]==\"\u666e\u901a\u80a1\" )<br>data=data[condition]<br>twid=data[\"\u8b49\u5238\u78bc\"].to_list()  #\u53d6\u5f97\u4e0a\u5e02\u6ac3\u80a1\u7968\u8b49\u5238\u78bcdef get_data(code:str, id_):<br>    df = tejapi.get(code, #\u5f9eTEJ api\u6488\u53d6\u6240\u9700\u8981\u7684\u8cc7\u6599<br>                  chinese_column_name = True,<br>                  paginate = True,<br>                  mdate = {'gt':'2013-04-01', 'lt':'2021-12-31'},<br>                  coid=id_,<br>                  opts={'columns':['coid','mdate','close_adj']})<br>    return dfdef get_data1(code:str, id_):<br>    df = tejapi.get(code, #\u5f9eTEJ api\u6488\u53d6\u6240\u9700\u8981\u7684\u8cc7\u6599<br>                  chinese_column_name = True,<br>                  paginate = True,<br>                  mdate = {'gt':'2013-04-01', 'lt':'2021-12-31'},<br>                  coid=id_,<br>                  opts={'columns':['coid','annd_s', 'd0003', 'd0004']})<br>    return df<\/pre>\n\n\n\n<p id=\"c19f\">We calculate 5 months average of yoy and 10 months average of mom, then merge the indicator and close price. Due to the monthly sales release are often after closing quotation, it will be a bias if we set buy signal in the day of monthly sales release. Therefore, we move the indicator into next day, to set the buy signal in the next day of monthly sales release.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">df_1 = get_data('TWN\/APRCD1', i)<br>df = get_data1('TWN\/ASALE', i)<br>df.rename(columns={'\u71df\u6536\u767c\u5e03\u65e5':'\u5e74\u6708\u65e5','\u55ae\u6708\u71df\u6536\u6210\u9577\u7387%':'yoy', '\u55ae\u6708\u71df\u6536\u8207\u4e0a\u6708\u6bd4%':'mom', '\u516c\u53f8':'\u8b49\u5238\u4ee3\u78bc'}, inplace=True)<br>df['yoy3'] = df['yoy'].rolling(5).mean()<br>df['mom3'] = df['mom'].rolling(10).mean()df2 = df_1.merge(df, on=['\u8b49\u5238\u4ee3\u78bc', '\u5e74\u6708\u65e5'], how='outer')<br>df2 = df2.sort_values(by='\u5e74\u6708\u65e5')<br>df2[['yoy', 'mom','yoy3','mom3']] = df2[['yoy', 'mom','yoy3',\"mom3\"]].shift(1)<br>df3 = df2.dropna()<br>df3.set_index(df3['\u5e74\u6708\u65e5'], inplace=True)<br>df3.drop(columns={'\u5e74\u6708\u65e5'}, inplace=True)<\/pre>\n\n\n\n<p id=\"9740\">For the part of backtest system, you can refer to&nbsp;<a href=\"https:\/\/medium.com\/tej-api-financial-data-anlaysis\/quant-market-strength-indicators-trade-c108dbfa549b\" target=\"_blank\" rel=\"noopener\">\u3010Quant\u3011Market strength indicator trade<\/a>. The following only shows the changes. When yoy is more than 5 months average of yoy and mom more than 10 months average of mom, then generate the buy signal; otherwise, it will be sold. The complete code will be placed at the bottom.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">for i in range(len(data)):<br>    <br>        if  (data[\"yoy\"][i] &gt; data[\"yoy3\"][i]) &amp; (data[\"mom\"][i] &gt; data[\"mom3\"][i]):<br>            sell.append(np.nan)<br>            if hold !=1:<br>                buy.append(data[\"\u6536\u76e4\u50f9(\u5143)\"][i])<br>                <br>                hold = 1<br>            else: <br>                buy.append(np.nan)<br>        elif (data[\"yoy\"][i] &lt; data[\"yoy3\"][i]) &amp; (data[\"mom\"][i] &lt; data[\"mom3\"][i]):<br>            buy.append(np.nan)<br>            if hold !=0:<br>                sell.append(data[\"\u6536\u76e4\u50f9(\u5143)\"][i])<br>                hold = 0<br>            else:<br>                sell.append(np.nan)<br>        else:<br>            buy.append(np.nan)<br>            sell.append(np.nan)<br>    a=(buy,sell)<\/pre>\n\n\n\n<p id=\"e180\">Write the previous function and data processing into a for loop, and run out the results of all the listed companies.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">qq = pd.DataFrame()<br>for i in twid[:]:<br>    df_1 = get_data(\"TWN\/APRCD1\",i)<br>    df = get_data1(\"TWN\/ASALE\",i)<br>    df.rename(columns={'\u71df\u6536\u767c\u5e03\u65e5':'\u5e74\u6708\u65e5','\u55ae\u6708\u71df\u6536\u6210\u9577\u7387%':'yoy', '\u55ae\u6708\u71df\u6536\u8207\u4e0a\u6708\u6bd4%':'mom', '\u516c\u53f8':'\u8b49\u5238\u4ee3\u78bc'}, inplace=True)<br>    df['yoy3'] = df['yoy'].rolling(5).mean()<br>    df['mom3'] = df['mom'].rolling(10).mean()<br>    df2 = df_1.merge(df, on=['\u8b49\u5238\u4ee3\u78bc', '\u5e74\u6708\u65e5'], how='outer')<br>    df2 = df2.sort_values(by='\u5e74\u6708\u65e5')<br>    df2[['yoy', 'mom','yoy3','mom3']] = df2[['yoy', 'mom','yoy3',\"mom3\"]].shift(1)<br>    df3 = df2.dropna()<br>    df3.set_index(df3['\u5e74\u6708\u65e5'], inplace=True)<br>    df3.drop(columns={'\u5e74\u6708\u65e5'}, inplace=True)<br>    qq = qq.append(buysell(df3, i))<br>    print(i)<br>qq.index.name = '\u8b49\u5238\u78bc'<\/pre>\n\n\n\n<p id=\"b17a\">We can see the win rate and return by all listed companies using this strategy.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" src=\"https:\/\/www.tejwin.com\/wp-content\/uploads\/1Jw4EM3hvNiLxeo9JW93Gzg.png\" alt=\"\"\/><\/figure>\n\n\n\n<p id=\"dda0\">Verify whether the missing value and remove them.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">print(qq.isna().sum())<br>qq.dropna(inplace=True)<\/pre>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" src=\"https:\/\/www.tejwin.com\/wp-content\/uploads\/1b03mXW1ETzAiAsQnRxe4DQ.png\" alt=\"\"\/><\/figure>\n\n\n\n<p id=\"871e\">The average return of all target is 66%, and the win rate is 52%.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">print('\u52dd\u7387\uff1a',qq['\u52dd\u7387'].mean())<br>print('\u5831\u916c\u7387\uff1a',qq['\u5831\u916c'].mean())<\/pre>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" src=\"https:\/\/www.tejwin.com\/wp-content\/uploads\/15sFn1-c30pPNTQfxFgoV0g.png\" alt=\"\"\/><\/figure>\n\n\n\n<p id=\"7d4b\">We calculate the number of companies with positive return and the win rate is more than 50%, accounting for about 60% of all companies. There are 60% of listed companies have positive return and 50% of win rate.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">qq['count'] = np.where( (qq['\u5831\u916c']&gt;0) &amp;(qq['\u52dd\u7387']&gt;= 50),1,0)<br>(qq['count'].sum()\/qq['count'].count())*100<\/pre>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/www.tejwin.com\/wp-content\/uploads\/1c_KMbVHIJqiljtnt8mkTGw.png\" alt=\"\"\/><\/figure>\n\n\n\n<p id=\"657e\">Cut the win rate into five equal parts, and calculate the number of companies in each part, which will be used to draw a pie chart later.<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">qq['20%'] = np.where((qq['\u52dd\u7387']&gt;= 80),1,0)<br>qq['40%'] = np.where((qq['\u52dd\u7387']&gt;= 60)&amp; (qq['\u52dd\u7387']&lt; 80),1,0)<br>qq['60%'] = np.where((qq['\u52dd\u7387']&gt;= 40)&amp; (qq['\u52dd\u7387']&lt; 60),1,0)<br>qq['80%'] = np.where((qq['\u52dd\u7387']&gt;= 20)&amp; (qq['\u52dd\u7387']&lt; 40),1,0)<br>qq['100%'] = np.where((qq['\u52dd\u7387']&lt;20),1,0)<br>z5 = [qq['20%'].sum(),qq['40%'].sum(), qq['60%'].sum(), qq['80%'].sum(),qq['100%'].sum()]<\/pre>\n\n\n\n<p id=\"a46d\">The results are presented in a pie chart, and the win rate which is above than 60% account for 1\/3, indicating this strategy with a high win rate.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter\"><img decoding=\"async\" src=\"https:\/\/www.tejwin.com\/wp-content\/uploads\/1QFICqlKpYqGxHSkm3_lCgA.png\" alt=\"\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"cf36\"><span class=\"ez-toc-section\" id=\"Conclusion\"><\/span><strong>Conclusion<\/strong><span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<p id=\"9bb4\">We can see that the 60% of listed companies may gain the positive return in these strategies, and the win rate above 60% are account for 1\/3, the subsequent can also through parameter optimization method to gain higher return and win rate. The important part to note is that the backtesting here has not considered the commission fee, and the actual transaction results still have to consider the commission.<\/p>\n\n\n\n<p id=\"a2ee\">Last but not least, please note that \u201c<strong>Stocks this article mentions are just for the discussion, please do not consider it to be any recommendations or suggestions for investment or products.\u201d<\/strong>&nbsp;Hence, if you are interested in issues like Creating Trading Strategy , Performance Backtesting , Evidence-based research , welcome to purchase the plans offered in&nbsp;<a href=\"https:\/\/eshop.tej.com.tw\/E-Shop\/index\" rel=\"noreferrer noopener\" target=\"_blank\">TEJ E Shop<\/a>&nbsp;and use the well-complete database to find the potential event.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"7431\"><span class=\"ez-toc-section\" id=\"Source_Code\"><\/span>Source Code<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/gist.github.com\/tej87681088\/0c24aad8a39c912483c5336629a7997a#file-tejapi_python_monthly_return-ipynb\" class=\"ek-link\" target=\"_blank\" rel=\"noopener\">Click here to go Github<\/a><\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"0c02\"><span class=\"ez-toc-section\" id=\"Extended_Reading\"><\/span>Extended Reading<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<blockquote class=\"wp-block-quote is-layout-flow wp-block-quote-is-layout-flow\">\n<p id=\"e355\"><a href=\"https:\/\/www.tejwin.com\/en\/insight\/the-sweet-period-of-emerging-stock-to-listed-stock\/\" class=\"ek-link\">The sweet period of emerging stock to listed stock<\/a><\/p>\n\n\n\n<p id=\"314b\"><a href=\"https:\/\/www.tejwin.com\/en\/insight\/momentum-trade\/\" class=\"ek-link\">Momentum trade<\/a><\/p>\n<\/blockquote>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"568e\"><span class=\"ez-toc-section\" id=\"Related_Link\"><\/span>Related Link<span class=\"ez-toc-section-end\"><\/span><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><a href=\"https:\/\/api.tej.com.tw\/index.html\" rel=\"noreferrer noopener\" target=\"_blank\">TEJ API<\/a><\/li>\n\n\n\n<li><a href=\"https:\/\/eshop.tej.com.tw\/E-Shop\/Edata_intro\" rel=\"noreferrer noopener\" target=\"_blank\">TEJ E-Shop<\/a><\/li>\n<\/ul>\n","protected":false},"excerpt":{"rendered":"<p>We use yoy and mom of monthly sales of Taiwan listed companies to establish strategies and observe the win rate and return. Keyword\uff1aApplication\u3001Monthly sales\u3001Backtesting Highlights Difficulties: \u2605\u2605\u2606\u2606\u2606We use yoy and mom as our buy&amp;sell point for trading strategy.Advice: The backtesting framework in this paper can refer to&nbsp;\u3010Quant\u3011 Market strength indicator trade. For readers who are [&hellip;]<\/p>\n","protected":false},"featured_media":17014,"template":"","tags":[3063,3005],"insight-category":[690,50],"class_list":["post-17012","insight","type-insight","status-publish","has-post-thumbnail","hentry","tag-backtesting-2","tag-tejapi-application","insight-category-data-analysis","insight-category-fintech"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.tejwin.com\/en\/wp-json\/wp\/v2\/insight\/17012","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.tejwin.com\/en\/wp-json\/wp\/v2\/insight"}],"about":[{"href":"https:\/\/www.tejwin.com\/en\/wp-json\/wp\/v2\/types\/insight"}],"version-history":[{"count":1,"href":"https:\/\/www.tejwin.com\/en\/wp-json\/wp\/v2\/insight\/17012\/revisions"}],"predecessor-version":[{"id":43971,"href":"https:\/\/www.tejwin.com\/en\/wp-json\/wp\/v2\/insight\/17012\/revisions\/43971"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.tejwin.com\/en\/wp-json\/wp\/v2\/media\/17014"}],"wp:attachment":[{"href":"https:\/\/www.tejwin.com\/en\/wp-json\/wp\/v2\/media?parent=17012"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.tejwin.com\/en\/wp-json\/wp\/v2\/tags?post=17012"},{"taxonomy":"insight-category","embeddable":true,"href":"https:\/\/www.tejwin.com\/en\/wp-json\/wp\/v2\/insight-category?post=17012"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}