From 93cb87da7851852500347c9ea4e2eb55cead255f Mon Sep 17 00:00:00 2001 From: Luis Fernando Molina Date: Sat, 8 Feb 2020 12:37:56 +0100 Subject: [PATCH] Bitfinex tested --- CanvasApp/FloatingSpace/FloatingObject.js | 2 +- CanvasApp/FloatingSpace/UiObject.js | 8 +-- .../Single-Period-Daily/User.Bot.js | 26 +++++----- .../Icons/style-01/angle-to-parent-000.png | Bin 5713 -> 10083 bytes .../Icons/style-01/distance-to-parent-000.png | Bin 2806 -> 6276 bytes .../Icons/style-01/next-phase-event (2).png | Bin 0 -> 8774 bytes .../Icons/style-01/next-phase-event.png | Bin 15210 -> 9994 bytes .../Images/Icons/style-01/task-manager.png | Bin 4924 -> 4956 bytes docs/_config.yml | 1 + docs/_includes/toc.html | 2 +- docs/_includes/trading_system/base-asset.md | 28 +++++++--- docs/_includes/trading_system/close-stage.md | 35 +++++++++---- docs/_includes/trading_system/condition.md | 35 +++++++++---- .../_includes/trading_system/fee-structure.md | 46 ++++++++++++---- docs/_includes/trading_system/formula.md | 39 +++++++++----- docs/_includes/trading_system/initial-stop.md | 39 +++++++++----- .../trading_system/initial-take-profit.md | 39 +++++++++----- docs/_includes/trading_system/manage-stage.md | 47 +++++++++++++---- docs/_includes/trading_system/open-stage.md | 47 +++++++++++++---- docs/_includes/trading_system/parameters.md | 47 +++++++++++++---- .../_includes/trading_system/position-rate.md | 48 +++++++++++++---- .../_includes/trading_system/position-size.md | 47 +++++++++++++---- docs/_includes/trading_system/quoted-asset.md | 47 +++++++++++++---- docs/_includes/trading_system/situation.md | 47 +++++++++++++---- docs/_includes/trading_system/slippage.md | 49 ++++++++++++++---- docs/_includes/trading_system/strategy.md | 47 +++++++++++++---- .../trading_system/take-position-event.md | 47 +++++++++++++---- .../trading_system/template-sessions.md | 25 +++++++-- docs/_includes/trading_system/time-frame.md | 47 +++++++++++++---- docs/_includes/trading_system/time-range.md | 47 +++++++++++++---- .../trading_system/trading-system.md | 47 +++++++++++++---- .../trading_system/trigger-off-event.md | 47 +++++++++++++---- .../trading_system/trigger-on-event.md | 47 +++++++++++++---- .../_includes/trading_system/trigger-stage.md | 47 +++++++++++++---- docs/css/customstyles.css | 18 +++++-- .../suite-defining-a-trading-strategy.md | 24 ++++----- docs/pages/suite/suite-network-hierarchy.md | 14 ++--- docs/pages/suite/suite-parameters.md | 14 ++--- .../suite/suite-trading-system-hierarchy.md | 47 ++++++++--------- 39 files changed, 884 insertions(+), 313 deletions(-) create mode 100644 WebServer/Images/Icons/style-01/next-phase-event (2).png diff --git a/CanvasApp/FloatingSpace/FloatingObject.js b/CanvasApp/FloatingSpace/FloatingObject.js index b84f43764..bc83446dd 100644 --- a/CanvasApp/FloatingSpace/FloatingObject.js +++ b/CanvasApp/FloatingSpace/FloatingObject.js @@ -330,7 +330,7 @@ function newFloatingObject () { thisObject.payload.distance = distanceToParent - if (distanceToParent > 2000) { return } // this is introduced to avoid edges cases when importing workspaces. + if (distanceToParent > 2000 || thisObject.isPinned === true) { return } // this is introduced to avoid edges cases when importing workspaces. newPosition = { x: parent.payload.position.x + distanceToParent * Math.cos(toRadians(thisObject.payload.angle)), diff --git a/CanvasApp/FloatingSpace/UiObject.js b/CanvasApp/FloatingSpace/UiObject.js index d33a094cb..daa0022bf 100644 --- a/CanvasApp/FloatingSpace/UiObject.js +++ b/CanvasApp/FloatingSpace/UiObject.js @@ -1321,7 +1321,7 @@ function newUiObject () { browserCanvasContext.beginPath() browserCanvasContext.arc(visiblePosition.x, visiblePosition.y, VISIBLE_RADIUS, 0, Math.PI * 2, true) browserCanvasContext.closePath() - browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.LIGHT_GREY + ', ' + OPACITY + ')' + browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.GOLDEN_ORANGE + ', ' + OPACITY + ')' browserCanvasContext.lineWidth = 10 browserCanvasContext.setLineDash([10, 90]) browserCanvasContext.stroke() @@ -1329,7 +1329,7 @@ function newUiObject () { browserCanvasContext.beginPath() browserCanvasContext.arc(visiblePosition.x, visiblePosition.y, VISIBLE_RADIUS, 0, Math.PI * 2, true) browserCanvasContext.closePath() - browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.LIGHT_GREY + ', ' + OPACITY + ')' + browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.GOLDEN_ORANGE + ', ' + OPACITY + ')' browserCanvasContext.lineWidth = 5 browserCanvasContext.setLineDash([5, 45]) browserCanvasContext.stroke() @@ -1337,7 +1337,7 @@ function newUiObject () { browserCanvasContext.beginPath() browserCanvasContext.arc(visiblePosition.x, visiblePosition.y, VISIBLE_RADIUS, 0, Math.PI * 2, true) browserCanvasContext.closePath() - browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.LIGHT_GREY + ', ' + OPACITY + ')' + browserCanvasContext.strokeStyle = 'rgba(' + UI_COLOR.GOLDEN_ORANGE + ', ' + OPACITY + ')' browserCanvasContext.lineWidth = 1 browserCanvasContext.setLineDash([2, 8]) browserCanvasContext.stroke() @@ -1370,7 +1370,7 @@ function newUiObject () { if (icon !== undefined) { if (icon.canDrawIcon === true) { let additionalImageSize = 0 - if (thisObject.isExecuting === true) { additionalImageSize = 20 } + if (thisObject.isExecuting === true || isReadyToReferenceAttach === true || isReadyToChainAttach === true) { additionalImageSize = 20 } let totalImageSize = additionalImageSize + thisObject.payload.floatingObject.currentImageSize browserCanvasContext.drawImage( diff --git a/Legacy-Code/AAMasters/bots/AABruce-Indicator-Bot/Single-Period-Daily/User.Bot.js b/Legacy-Code/AAMasters/bots/AABruce-Indicator-Bot/Single-Period-Daily/User.Bot.js index 3c2031fe5..d42c7a3b7 100644 --- a/Legacy-Code/AAMasters/bots/AABruce-Indicator-Bot/Single-Period-Daily/User.Bot.js +++ b/Legacy-Code/AAMasters/bots/AABruce-Indicator-Bot/Single-Period-Daily/User.Bot.js @@ -56,7 +56,7 @@ let market = bot.market; - let lastHoleFixedFile; // Datetime of the last file certified by the Hole Fixing process as without permanent holes. + let lastTradeFileAvailable; // Datetime of the last file certified by the Hole Fixing process as without permanent holes. let firstTradeFile; // Datetime of the first trade file in the whole market history. let lastTradeFileSaved; // Datetime of the last verified file without holes. let lastCandleClose; // Value of the last candle close. @@ -118,12 +118,12 @@ logger.write(MODULE_NAME, "[WARN] start -> getContextVariables -> Undefined Last File. -> reportKey = " + reportKey); logger.write(MODULE_NAME, "[HINT] start -> getContextVariables -> If the status report does not exist we will point the lasCandleFile to the last day of the previous month."); - lastHoleFixedFile = new Date(processDate.valueOf() - ONE_DAY_IN_MILISECONDS); + lastTradeFileAvailable = new Date(processDate.valueOf() - ONE_DAY_IN_MILISECONDS); findLastCandleCloseValue(); return; } - lastHoleFixedFile = new Date(thisReport.lastTradeFile.year + "-" + thisReport.lastTradeFile.month + "-" + thisReport.lastTradeFile.days + " " + "00:00" + GMT_SECONDS); + lastTradeFileAvailable = new Date(thisReport.lastTradeFile.year + "-" + thisReport.lastTradeFile.month + "-" + thisReport.lastTradeFile.days + " " + "00:00" + GMT_SECONDS); lastCandleClose = thisReport.candleClose; if (thisReport.fileComplete === true) { @@ -161,7 +161,7 @@ if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> findPreviousContent -> getCandles -> Entering function."); } let fileName = '' + market.baseAsset + '_' + market.quotedAsset + '.json'; - let dateForPath = lastHoleFixedFile.getUTCFullYear() + '/' + utilities.pad(lastHoleFixedFile.getUTCMonth() + 1, 2) + '/' + utilities.pad(lastHoleFixedFile.getUTCDate(), 2); + let dateForPath = lastTradeFileAvailable.getUTCFullYear() + '/' + utilities.pad(lastTradeFileAvailable.getUTCMonth() + 1, 2) + '/' + utilities.pad(lastTradeFileAvailable.getUTCDate(), 2); let filePath = bot.filePathRoot + "/Output/" + CANDLES_FOLDER_NAME + '/' + CANDLES_ONE_MIN + '/' + dateForPath; filePath += '/' + fileName @@ -212,7 +212,7 @@ if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> findPreviousContent -> getVolumes -> Entering function."); } let fileName = '' + market.baseAsset + '_' + market.quotedAsset + '.json'; - let dateForPath = lastHoleFixedFile.getUTCFullYear() + '/' + utilities.pad(lastHoleFixedFile.getUTCMonth() + 1, 2) + '/' + utilities.pad(lastHoleFixedFile.getUTCDate(), 2); + let dateForPath = lastTradeFileAvailable.getUTCFullYear() + '/' + utilities.pad(lastTradeFileAvailable.getUTCMonth() + 1, 2) + '/' + utilities.pad(lastTradeFileAvailable.getUTCDate(), 2); let filePath = bot.filePathRoot + "/Output/" + VOLUMES_FOLDER_NAME + '/' + VOLUMES_ONE_MIN + '/' + dateForPath; filePath += '/' + fileName @@ -241,7 +241,7 @@ volumesFile = JSON.parse(text); previousVolumes = volumesFile; - lastHoleFixedFile = new Date(lastHoleFixedFile.valueOf() - ONE_DAY_IN_MILISECONDS); // We know that after the next call a new day will be added. + lastTradeFileAvailable = new Date(lastTradeFileAvailable.valueOf() - ONE_DAY_IN_MILISECONDS); // We know that after the next call a new day will be added. buildCandlesAndVolumes(previousCandles, previousVolumes); } catch (err) { @@ -287,8 +287,8 @@ if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> findPreviousContent -> Entering market = " + JSON.stringify(market)); } if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> findPreviousContent -> lastCandleClose = " + lastCandleClose); } - lastHoleFixedFile = new Date(firstTradeFile.getUTCFullYear() + "-" + (firstTradeFile.getUTCMonth() + 1) + "-" + firstTradeFile.getUTCDate() + " " + "00:00" + GMT_SECONDS); - lastHoleFixedFile = new Date(lastHoleFixedFile.valueOf() - ONE_DAY_IN_MILISECONDS); + lastTradeFileAvailable = new Date(firstTradeFile.getUTCFullYear() + "-" + (firstTradeFile.getUTCMonth() + 1) + "-" + firstTradeFile.getUTCDate() + " " + "00:00" + GMT_SECONDS); + lastTradeFileAvailable = new Date(lastTradeFileAvailable.valueOf() - ONE_DAY_IN_MILISECONDS); lastCandleClose = 0; buildCandlesAndVolumes(); @@ -412,9 +412,9 @@ if (FULL_LOG === true) { logger.write(MODULE_NAME, "[INFO] start -> buildCandlesAndVolumes -> nextFile -> Entering function."); } - lastHoleFixedFile = new Date(lastHoleFixedFile.valueOf() + ONE_DAY_IN_MILISECONDS); + lastTradeFileAvailable = new Date(lastTradeFileAvailable.valueOf() + ONE_DAY_IN_MILISECONDS); - let date = new Date(lastHoleFixedFile.valueOf() - 60 * 1000); + let date = new Date(lastTradeFileAvailable.valueOf() - 60 * 1000); if (date.valueOf() < firstTradeFile.valueOf()) { // At the special case where we are at the begining of the market, this might be true. date = new Date(firstTradeFile.valueOf() - 60 * 1000); @@ -481,9 +481,9 @@ /* Check if we are outside the current Day / File */ - if (date.getUTCDate() !== lastHoleFixedFile.getUTCDate()) { + if (date.getUTCDate() !== lastTradeFileAvailable.getUTCDate()) { - writeFiles(lastHoleFixedFile, candles, volumes, true, onFilesWritten); + writeFiles(lastTradeFileAvailable, candles, volumes, true, onFilesWritten); return; @@ -497,7 +497,7 @@ if (date.valueOf() > lastTradeFileSaved.valueOf()) { - writeFiles(lastHoleFixedFile, candles, volumes, false, onFilesWritten); + writeFiles(lastTradeFileAvailable, candles, volumes, false, onFilesWritten); return; function onFilesWritten() { diff --git a/WebServer/Images/Icons/style-01/angle-to-parent-000.png b/WebServer/Images/Icons/style-01/angle-to-parent-000.png index 08de6ae0f7b48021d048a4d0086417cf63927011..3d4ab2c42174b86c0815df9451deec9611723b1b 100644 GIT binary patch literal 10083 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 U|Hj1hM*z2wz_5U_rP6)>23;s|oB#j- diff --git a/WebServer/Images/Icons/style-01/next-phase-event (2).png b/WebServer/Images/Icons/style-01/next-phase-event (2).png new file mode 100644 index 0000000000000000000000000000000000000000..d84bdd96555863ffbfdd0ac12b9de46d9669d394 GIT binary patch literal 8774 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%0A|@P{D(YXPrDSk_&ipe8`n%tN?Vu<-tx)pW z-S_(KT8B=dy9wqE7Rt4}d~C`cYn!?9D!XswdmxsmtNv#mzinml-7kZM{l|%oi^3C; z_{+4EbZ%G>#Lui>rAhQuar{<2Q$d$qM#G2KLrF~g=yUGiKy<-QW5FCkp&s)#lxAIa z=s(V7BC#2saOwsN-^#ynk<7F6(_SNr+q_xfN~MjKzy>M~&&T%sRaqnQyL8I$dBJ%U z2_mtV40T+}UyWm<+y$_wqOS#*Y%|M-(A~{`nbE~hg{C1xu`Ju z@hn*_q704xS-1c@39@9^D2jS;V-A)BvM3`~D6snqW%sUdV*lu+<yZtY1gZB@BH52)sP7IY+~w$ z{qU}0hJ{{DB3iKKZp-M%wu~*GIxOnt+sZ4b88v@&VIJ_0OO{dytP@GI0J8f$Aw>!^ z5tBL5Q2r07n5hIf(D4r_n7IVlAp8ep%u)g@Q16!j30ouqOR)O~C}u4I2KfI21hbWZ z0>u9V!0aR-(UE|N#M0*ei}06F8G0eJJ`dul*itbWw}3yRhOimopJF1CeZwJ1{V51e zm4Fl@O#)HS_YWwH(-QE6U`Yf55+g?f7SQ((5XMyr$U|@%6N#2*6iQ$a`u>3&>aYT>?^!R}$C(egA;Mcqf5X5S$?a5~EWBhS2v95JsN_ zq#*bt6Dg5W*ejC8Y_M`kY!S$cxm=VZ&6tqXFM+p`*!+=HrX)5hPU~aNg1xPe@>{<* zRSgI4{=(%wHobUr?sCyJsm!l;7=q16_uYQ=KApwbV;^#_A-4NDGZ^;Dq*gOQ?>M&< z-2DGkA?og;esbm`z90d$%n{bp7`vJs&dY;j+#G>dWA@gVVja@~UVqop!n6ByG_X>; zyu&1QUr|4rnb-UoNnapdh*)ZfeVzF!&$pt&)^x546!neF!j1ZMNbp3sgkjXI>;h=s_% z9$e;d|G+CryZ#L3J{Z>^VT$!S_RvVd^kC~r<{r>g#=YM@k{h`%>$UXcn9gn#>misA z_nV03JzDkbg*LYhy!?e-8>YNXk#t9K0m7o=w|r()p4i=Snagd0J!+rJD3%k#tyJD- zq%=&;5FAHW$+9Xa@rBOJV|_Y?Fd$n(5i`=bx!@zs8xE#OzV1+@K#BFKjt+jJw`l05 zx|(akRnmBXXh|A39o%+|ju?p-qIUKdh$|$_LhOpPnZM@>fsxMig8Rn&TPJ423!xq* zdXEi)lldKrAT^u!Qe;O<8cT`TPJG-$QS4k>>BlOZ9=*_-QWC!LwMM0sEdnzWFj} z9#Ov~jkRl)WGLW`?kP0vlUB)bd3F2{S91av~G)ZHxb@?jVm^i`39p#XC zsd9MNi4;joladTs81x;Je1t3wHRvfbpkZ>DfeCb!iO@nd4h99>w^ zdr==+fg$3XBH3hYlRMm$<@hOM#-xtDWX>ztr;TJU!n*!ipq87UcaWgr+mP;Nt`c?& z71|T-U_j?jiWVc;23Y-HE^4_NxFcK!c#{Qx#PX=6vm_qwJZL2eev5TbOM56D;p&1n zsU?9>L$cK|@pLZ@FNMk~;uLt$@#$$DX*>&}dx+IwK*lD;eyF83bWajW{~WI&F8r_K zGrj-o_z2hVpW}%HQ{uQ}deoueD&Sg8ID-MOCT7%7%Y*Q4giyfVk}|o(aY)z3`lf@( zoG;+h%hiK^Do-TVLDX$vd{UyCjX*y$-xy ziE2L?BzZyI5TZrWxDkR&Qo#!vOHWLO*;qSYlGOT1yxCk7qvMeRNoMc?C#odJu_(Mb zjuIO+ti45IQx3x^l7xa&7}^g1O5wI9M@iC1mbFyUEi8hs#+(m|*g_~cCJ~cll<0XS zLp0nK)Mq38l3o+RDMgaEa4A*|&Hs5GFvz?GoOVTQH_~#E>R*=!JTgy@b5;o(MKBr3 zPE9hTz(Ky_qj(7!jIm#&(_|+H)N(y+sv5f_mWG{Bs9!P_JsPC|&tV(6`-r4RDTWdG zw(rm3L1pNM$S_XXhNV*6$PY^n>OfnCD>yiho!MG(Z?Y#y|m3*8dB{KXyYc zcfl@G&_p>gmsUWUKYY0=JpV7Z8mq#5q@;qrMJ|Fv$e! zstoJlyS)?gTX?OT@>GW9AXmATtVnlt4-?&cZ&m~<#t<}%oz5+ioL$38I%~1APo2)s z=d;bgmySQ2-%Ba4&?fd5x=1sH)*VnzThCd^t75M1(&Hj3O2KF`!MK7 z$)uvJ9!2c4f#h!hpV@Fkhjk!Ljdei@hEapLggOXkTaF4>A^2_Vc)et*bfS1TivI&a zxn}P0l*J}X?F`=vjK~J8Z=_WFiu>9lrkw$I=h_aH6^NDW|J1)({vQxOR;HaPc zeLZ1^#D<;FV4c}V#uK!SO3;_B!UI;zpzLtGI$|A`o}@7!>)KMJya@Jc?(lS>>?Pti^Uvz+taT;*GG6B$xNdgT(sdg{*DL|gu&6~#L{nCUE?eTaBs6T(>IX|a z=$~ZL>Hgk5eck;Lqq^Fkzq^|Cpkdj{myOSV{QUW{-00Nx{>v*1KD9o4_+Zby>YhV> z{rlY7UB=~9zX&h6_u^yHzJ}(ew)1@z`+Ks3h};|Mr{^BmzWCJIiXA*Zwfc4G%Zche zL)B{a&xPZk(`|{?`T5SKKmUIZELdRr4Zv1!ikGK<^qaO5UpBP5>m+=fXEdF1F`BTb zTs=S7?ZJ$=r_wX8m93JpfNXwx?}9CJryP2qH~5a-*T+kZc04RsTB=Xk?Y?wr+M-|a zK7AJ%ntoBN&BaMk5c9su(-=ip{f#Ni_;`{_m5XstT$G-37OF}S8!m@&CF5BM8_ie{XQ-(Fxe%w_eAnmawxNO&#astDs{4u$MVdjw-J6OT- zg1DIyv;V0c^fGFqlK~W25wwW#zrru~5&4Z{1>?`F<;8Uj$Yu!P&y`HW3!vOh;G$pk zAxv`b-jP_lLt(iIsH_A?9x?Exwd^Iyu{93CNp#QVO8p{b#sHj-@{WENxElsx~OBbN-M6&ZCYlC`S`Iu4f`$tT* zWBk6rAjZ#Y3S<*q8QM2SjcquB!jv(q!Os>l9Jvnab!$J}8|&2Sdzk#pRxV?x{8-Rq ziGMK!xjkbu?jeD1L-vxR)BDy&l$((e>)ij5dWN{Z6%aW~dzSzRat1>~t}<7B`dH^Y zLns!c386s$*9k?5Btr}2`SA%RsG3h@i*x7SDqH$H5fi;YI;cIA>DpT;(Ifv{l?EC{ zZ-Tav5E28VGLZIEU(G!~Y!qHAgpC1majJTK z*M_8KlM7Yb^{s_4Hy~AljHsTdhK3lRMAQ)FPT+9FJ&W59lhhw|@3(K-r1c1bFh}y| zJl>n0>IMt&8M)1pULnJCWvfQ2%fXtx3M=7|n)W{V_sgTEgKC(Ry5}hbdwk{f&k`** zIcbZPzZc}r_q@c|Uae?!18Nn)?T8hEX@GojF4~HVo?5W=gzzvR)s^AJgT`*~e>3=& zJ0?3!mUUq@K|q`>6aNzt?hL=8dhP9eX9?ZmdbLc^u4+;cyxgem z6dz7C_F0bkB1tJUL^6Lw|hzeYZKB-e+AIoC|Sg-1wsr&Tn zF!=aN5vyVC0O^?AY~Jd$(b&h?3}W-B2a|UbLoKjNuX_~JtUpj0e>0A#D=Jgsqs;;( zPH;AI+g7gZ4=h5eKiF#?JmG{tL^At=*t-WXnfqTm!#u+vsx8^{_$u@u1l-1YMl)42 zxj8-8L^}564+5ksk?D9izM42--3SXh=QU|ijXIPon#m+jv<)7uG_VJWI!bGqs9XP< zX>SZRy5qFY8|r&8_|(sgc-k6BdM-shF5(*uS%Nv|6b8ha!1ejNH_XbBqWzXr}J5GOTn& z_FuZ%BaeWao}%Bg-8b*`+yaw6AmZm~zp1j+u|LFt)yHGHU$!S_aaFsCs|G2tF-UfU z*ubp|n8}6J3;IVy+}Z+=Ym&Oh{tA2gq)g4+fj;D_ZgY{XhN4RYIo}9I%PwW}2=#|_ z?l{>~UE;Y*v;?`Ol@`xWc{Vj|MQt;4@Dp;VID!;#lkG1cC z=wa&a51vv8+w*!HkXv-y?I2Ef`ymZ7yJK$z>;btG#szXRQk}58vVgBT*LUH#uA2-3 zuig6-QNW&FccV0r-WWZ@GZ)evm)A`)(;!E!MTfs3-A|K34gn{4=+(+8%3TM`OXmoM z2S;J-+Ap%)iRJ@4i3-|C^x)RK_rI}Mn4j+Jx%-7@bTQXnSa}Bejsnellw@KxrVnmb zNwPNhkJg5+@h9~kGHi1%HcUqXsBw&xkV^;Z{fqb8S?C8(>|${0$q->>5#)Mdq89AN znN{59R~0?mv#KUg z(f<372h5P*_~7{tt;LYs_j%mY3%0F4l8mK^UY#y$m+8Q;o3Jz3p*Uwqd~IjOpOOs| zKCBwCrBfpp#zER0k?k&OxvI@k4ETI;Sxh=97No$}Ja%(gM0%+;`(9rVI{efgE{5m?HP`U+d4u^c%-onl|t2ufjMSFziNJLDHyrN?!x_uH$=z3q-u(ao} z@X#^;k#`*EDA&G2e*%=WhnOD=a#ZWwS#w%~EgDAwyl{odLTD=YaL->ba5q`D;#ZL1 z7{-HC407TX+dQr!>GZ&_*6KFrrsQf3X?vrY83!)@d@7m1*!+AhL*YTqVCFCl#5~ws z-{I8C20hVZ@+3(i2jH4l6t}mpd+~u?WJB`;#e!`qp}|^FrS>pKJRRT?{MJ z5Pj9eKsq896-KFxEML4S&O&aQ@>$4z7T*Yii#PftX)vv4nZ&y2j~}Yy(^PttSf%{(w_J;s15ZqQtPACKVl=AOs6E% z`}$vv_CfY=61A9rR(~Em|KY30TQ}Z`=NN&iU5h%zB?dV{4DxyRS>08&>t~=L!S0o5eyz! z&DbMq_FOEd>YhBI@0ylsB5G&DrjEX~(aEF{Ow8xC)E$jj(#N67R{sFAE?h=PUEL2y`c za-cc@ZN-RSD|MT?;1gIc(*C0OvBv0UI7wZpVZLEl)DdLS?3!ErLFlqATSJ{b%xAyXmjqDX+={pvJRvY|49OJ3LS^OT*| z0PB7ab_*g0?&8E7jkr>1?2UbdGPF5y~#Tl=8C<@)(sa?d+?uOC2;@U`I>;xqgj zbP1(eY?$PEVZdwNCeM3$<)>A{{}eTAnk&~rhssR!WyFxQ=JUKZCk@ZU(DKG8mtzaJ zC4WDl6VJMHqA#!^y zwtryuI6Z;URz%!JN`5x8c51l}X7igtj7wk;7SmD9jB<_hrcR(Y+YPcZ^~llc(Zagf zXIYkzhEUCpS>W?``7rqqt%DYjlPw2Ps2=(2d03XO7a61rhv|;!L42X)CdZD?$Z$t73P>@H8TbwkdklL4n)nD1U8mNeN@j~GzZT~HqKiNK^2Y%zw{*; z{yp<`k_=1xk1iXbIYyH>Uv_gyC`>25amYvwI&_HQr<=@cGW>1Dz&=g-W7(O#tJqPfe2G)~ zP&QMu?>uW}cK|Ce%cGPC7zdHkUZL(9znOR~@xO*WDi6-^3cb@z8ko&yfAoq3QG*_t z^GR}1J7o2Fzp&72BCNL0By~3UMU5jawTFIL{^C*a-8DW!976B?imN>eMM(MQ42*ME zH?IpT&scphjw^1|^c!og90kn=R3_}~$hd@G4qM?X#mMq64J@$sf~`Y|q`!8dy_-1A z!&z~)zU&ry)IiX#n z4>3n6y-28B?R9rbB;(O{K~@2e)CE6@fsz@&4)gh&1M{KglNkwG3{P(lRS4r72> z!r|RZw(MmoMMBugwhq`#&KHz+a28RR)b|#nW^)S`nz4E`B5ZmWj0T)by9_>I0np}^ zUa2nQR_0&6IEnTjGl5JPL1;XCU&{ge(EN&r^(;h;@P<-`XhW>Vz*3Sy7$7pyQ{=!u zNP`a(I`lyHBtFN6(ftgJmSgvXA)EC+dDiYnJOqYol@Ek)r}FL#5tIzY1ZHsHNK!q6 zo_`$1Zw@qqy^~VkjD%|1&G2Bi{R#fwJ$_qy3blydXOQFmwpf^Th$q8EQuw49PfOeb z+rJ=-J)--mPNiiMe6Mo+}=}jv7`8 zh!$FbVn`e$e@wraPWC2(NB#V ze}@i6zI3=eLU!4Ak$97vi08l50hHx7D^DIbhTqo-*!*YN_BfqT1f6sLywi|w>G`wO zYkDh-tmVQv=C=BNq&#N8B`cY~Qg-|Pz{!StA6LbIUF8I%a>a`6n}dcxb3kkTfGHjB zZ0xwb^QG$8mKXl_nQ&)+h51de%l?Q_n~L|B?cEWr^#Ohz(l9f=1bPJ>KYo0CdU2X6 zhz-|YUdqdzwx#@_DOfaIP0x$(97r@^|JnuOE*EiPQ5x7c5^yA-Bh zy*v2;G(U8NYP#lij7&fdti57D&zfkzmd_{fksOXd8AkAO+mU)8f48b)b^|^S3(|z^ zNyA|#57tW7M48b%PnoJCNOXH!C_4W|2K%t?I(;anM1p zG@q=v$2naf5|Vk|sw9YjU$b%1@e2=&@j6VDVFj5$`e+gX+^og z!$;-jP}OVj(J{`38V#C{%V$CB=4+Na5{<$w|S_~UyXY#b>-fRQT)t|Pe(jrkfuU{5xU z&lcbP-k0xu{p)V4JCP!c&J_l$D+Z4Kmi!zrUGgr}&TcTo0$B9(|K508jk-^PHVs{K zFw$K7_t+@=2IE20iI9|jiL?Hir*e0sb=h9Pu+g#D68F0^by*8!HQ2(CWTTX+s(y{un zHXu$Javy4YX(YDcJNWFMo1FiZ@Z*FOQ3Gtu03F;@;wKA zOwrRQX4NaEY}#88hx0*aI3#zuDWezCaFnN&BeWw`Z?YzFN}}TsVn|+DgW!cTjA9nC zRarD(A>b~MTi=gJ(ATVLv zU{o2hWJ^qG>{nZS1y@3jc`nzH2NAZKiU6sP`F8&63TTL+P~B@~_5vg`pomeyHuY-cC?yNw^-l1&x23ehkWs zWEirk2euG@9l|yml;66htUN>kz?)WV|zMct1#X?}>W8)e*L4r~1j3W!0V@+PU<& zo_2<=+jGd@rcNVQ+l!8a|Jx(k(ca1=NN1B8jn2K3E=~z zEz<11$A4m+`Kna$QQei_xSFZj%Xhf=B<>KK3fCl)qs;>WCNpkEsQ*OTcHutq6N|Ly z1C6t&&VCroWPC@m%h;}lH*>kp#4S84yP~P-(MemZT>}0&pk+dS(kAtvVSS!wN6WCv z<@x5{?v4WKZhgX#oMa9KEYWm0m%CIw1?qO)r=qz&G@k1WE!SzP_Mzu$GibXz|5lB@ z=opfoV@M;?!S6)M2P2fq5brd^MlA&GD%;dD>p*y}c#|TeZP~xnI68S1!*D-Lq)h?Y)aP8FDOZNZ; zbq_4q#BkOUKKSoW^7JqaeCV!@$i2q_0hzqjHRqXGJ3SX~)`(v*Uv~6a7NkIW_8ir! zPq31KWKQ&Q8`S)YVSBogd9(bX%XT?x$?Dno6s|rWmgB(|4~s-b&3ycdw{nc;eWD!X z0ozTFFq-pG!gTda_OhOg2+ClALy9IwzUEqgnA(O8%nHY@N)*&%i3wS?8W|O`{xqiG_6yj$4^;!Zr zq`7jbV$>50p73|94nvj8Oi%hN%r#umSYrZdl-Evhif%?UlHLx+K2iQ?is zJRq?mbUnVctt-0!Va2SUnk5W!<1oVI$@#7z8YtZN1G^Arp#Lcgu0YWoINW4O{*GU+ z8%>2ZA0zLvpt;!_1#`*H)8~IW5+m2lAY7^y9g#r#m)+V8fTG*pz50jbzUz;N_6&>5 zO&2_yn;&4ME}(^zr@bH*(r#nz*9}BC7<_<)h;S*bd*U4@@$F^F)VznVHq$Xe;-nNDDtfy63x zHOleANL;BKL{7vB#WW*JNVywKr#?GzLY}e`z0=vS8;suSKavdg_|Uc?G?3hW%0zhDMU32u=Gq(}g1oNK~l7!7qT zm)HZA6QH~2{zc|XAv}jPBi%gK=SBeY&10oFf#8!hykl2^KtNuhvri<}rYsg?M@KaE zPsZSfMC%^5PDtaWwdqrc0|aC9!sMHn7hDI~a@aU7e2E#!SgIlR1_vOYl8=mm!`ulp z_Vb1Dh#~!APv8U}_OOhQDp0upk~PRuSpTZ?6075;LrtpUiVh}SoWiC9N<`LxE*!rJ zJ_(?gKFVq^YzC1FGaW?z7`YR2W+hg5!Dv($JB{SRFk1Q6?G%T!h4$polwriKv9|7* zQWLs=!eo7A#R-8is$nWiVH$Z%Lu$2`yBAt8u@AQyqGzWs)w@QXDFrK-1gbQ$tVe6m zjH-8nXXo_j**1nc8&v}<_gf@)u_=6cNO$}{e{C_9nUELXLS={%y%gvpd3-_IXo#N2 ze*J+;ExbDk9sy;K{1c$AUy*7`P^KRS!wyg#B>x7;PI#V*qfZp!pZuW^Z9~YHa%jZz z>9!mLnlb{WuGj;!d)WV~M?jrDHWe3jR$owGEu>e>BaHaR5R*gacs+^#ei;MZHZTor z`)wrZR7`-x94My&&*U0h*?d-gnofBOA+L}%Wv}1`Qhxeu89;Z`7Re$70eNw~T_FX! zVob&+gMdo-&SOXo_mE0^ z`^W5EA3)GJpd3UGHw#V$v`=HZupq~#P*MtBz+;HgS^X{4Bwg6l8|x^;DGU}_awZb4 z{W7)@$^&9saf_AmNQ_*Q{-Tc-ai7f-ZvJMRvHT8$!3FHTFb&?0RIcqjZASC5=rq53 zHmi=8ceQaFdHSRk1f%p8rm!MrFj9Ws&G*uqjZ>rGH`Dmn)LSWtn76U0d9XRns146H ziTLrMYNwL-b9D;y<(BNqyfm6ew%8Gc$rAxMOz5@Qk z8-S#G|0Cu9mNp=%?*GsZA*s&)TPi@(|J^Q<3jV9X|0#7LDhbvP0U@wK=}ngC(sRUs zn*X-Tgt~;#|Fr81#BR_g<60Kp<3l2cbcEFTUgyTr22q5d&|8m5T-;(V1Vd16_FS>i zG#sbcV3W^)r#Dkt6KR>=AhsgR>0@RW+V*t8%gM)lJ-ODfC>iQ-XwdXa#M)osX7pqs zl8>J|tu2ql0)%h@NN>_zk1V%U2~ZxLuo`Ava;J(}Uf{rhHs-mB4EbD)jwWsZr*UXJ zQ|YqNX69vd3*Z{6%|t~`sGdVE0isNlU(V`YWFs;I;%i*(Ja)GfJNmCiG&r>N8I;}` zEw%Jy7 z(Bslq7-(`Cy{WS3+XqPS8d`6GosjP8Vnz<1(Y|&by*Y9rt_;;Cp>9WP4o)$lkN!G< zh+}l>)gTdzP+lbDO%R}(>qw7H-sn?|kb2W9Q(OGV-jO7a^X&T3$v9;M$2SRnFN4)5 z7U9HL)<66aMNfeAPEqSC+7p>!)aba;JO+K^2SJ2|7sCaTaGB{y*h6!!n zC!;+aUtYwL7X)8VH6N6iheUqhlLHPD83oySC_2z6tI34w+5J;zgLWi8lOcAE8@+(x z#+D&`L8qk$j2i4y;Y^=U;N=OW#h)Zw;d`=3>lKX0|<*FvC?n zApu%G+1~WcCuVq_7WL!R^a}}DjX?w1YTO9Im%Y1iVt?3Qpr0w;zFwCm$m0GN;UZh1e7A!=tUGOMNyCrDn;c}Km-J&SODowinK&gs)7{+lqyA90O>8^ zqe>B#-mB6{=mCZgg{Rjp8c2)X)r@=vc3wEV*9=5uXsw%%v=One+(R+!u%`Nyj$qpPekCMG_*R^f)%6p_cD z5fnCk^;cI_PN3ODqYSz`Hcy{YQNC$>Ecl-ckz2?6!Uc{3d+GosZw(S2petpWo z(sYp9T>W<%D~}W(I2_0pJ%nu1IAaJJ@?Z#n{phU-%XCUh;nfyCU@=w*WwRcn18PM@ zuOHKc7nucRWpRlxmd372l>R$Unlje8Pr;PtUQ+s-_X1|Xfq=CQ;CbMr{G$GUH6SRn zOBn)$X*m9e1_0=v0{|0Jr9s0sK%w}5HGq-p+g&g^H3}?zsZwG8dqY;osm$5A1Hb15 z#vYoKH#*sH`Na0uuB95}r6j6np`8w$o{3Sr?k*|r6JdmJbiNGT;}gtixN7jRsgC#X5y!>i(Pr+ zL;Hixm#*K_(68h+KeR7^)OnU~Y0@@S4b&WjRY#FnEUwB>b5-kiF0w%J=;l_&3!WA0 z(_a#!5iHw0zaDs&=2)TEJ#)PIh>g4H&~AE+Pr$^ifw)K-#ee6*o~XlH597 zE1=BizaIHamP9c|09T zfSL2q#FBhoZmRC*3q`^C9^sn^szI_#sI!w7B?O5xSNv|}YAEXJa+#$czbIIk>BrQO z;b+2YOtrJ(Qt=9*>Yqg(x)Mx2rqKI+AxUDZ4 z85EzeJJVJ#qw`YtM*b_h`eruFwtF9^4zv6?d_M%M=KZ6jykSojl6UOI-hU#J4a+ zN8^5G`emXbuvq0HJs*vu-8B z`}M#Nk*BP_RMG(C5Ai*5J==nH-*j5k51TwSTlYQHAhJc2HitR+YrLwzrm||F$fyjU6PDlMINnF)t)p$qS_MrCWJPpFbut zQ%y_?c{YC6lRYkWADJK!?cJ1+F7sd@%IEIow}iDQ{?+(wuBC7(Zkjb%MIL+sEma0Q zKwm-e6X&G$pS93q-A@{EvLRv5r5LPKQRkB-ysl>jBg7FczwDgeKP$xsW;8Gl16AOD zihuEV20_c@&=NLsV%4eF!c53&9KEy8}CD_x5 zozaYi&zxPJp}PytftfsI)Bl1fP=NcHB8jWKNSAl$-t%A}SI*=#MUlcVhDP@^V%p|u z_3*lG2VQV&{&WXBg*mEU)}4fOtFFD?C)T~Rd7WNWT`P92`7iTRdSu&G?1oaw*WqtK zCwt|6Ki$s2{EzZ<5x-ADSIO7%E~G>2XE;GdxrZPFf+80X{%XAcL_}{_WsTqadjYBK zq#JaoK02?5RuaqTEOe&q3k<%#td#OX^r*$PKaZ&4#9A@}P|1 zs=_WHjH31&=nlPK5QmZfdZu59bdKc60JgE!&7Z}5BR74R>nc8}p-H+y|F@&Sx3`2_ z@lTq+#*L5unrX1wDYF7l_ulX}dZ>&GMd*=lz|$d2#ot@?62}}HgpvOp&mRPLF#YYg z8OYys*C4Z^Kh^7gU7%{e}D8=ptz@JaCS{Xv=YA#Byx7Vr6ol=xW3mB`3x z5xvx79Own%`GCD1dqm*f%lt)M75A_4`-hnJgC9LV4;Mx1hh5!bsdKt8e`xsj$9>%w zkwr3$ncP^a-8tI^S>CtjCC}V|)Sv8WsNh-zs(RLGjp^wJ_1r>haeDbL1POy%Y47{h z+)WfNb5rg8M&=cnpQ(kUt#4fnO#-X_wRB+SSmh`E!;5oIj*JDi_7<6CMyRhZG~H*W zr}AZ^rQwe!89eUm7zv&pGgti@*I6kR{Fo zRhP?dgbp$$>zi}u51d(U>HCYURC7MQVvCI%RT(hk8B)N0!G*Ddbj{^M2N-LmzZs34 zmJr-bON-O7;GmJl8!$H2T$r2|B(HNBPWS5Dr~3DtHNpvzHRx&0x5i=6!zKb7Hxg9yvTRq%~mYI97EqzDF&kbk3xK*K(P|F>zO6^HHiU)ouKnG=j0x~7`04(hAq2U2cPq=x5qOn;?P@V5GzI@2s*vB zH$+I{oTppd^3iJ&rkKkwT9ps@4=mW5;G~GuD35hVX4fDyFgFjB&-q;wKgEgZ&mC+` zgq91VN5wr1-@Oa!7MS`5EC^Ixpk~R&LC}$X`=3jABM&?f?0tPi;`W2@(`1~e|2adsfqt^0rr09LGxL>(BU9tRoGB`r6}TO|Epy3vZ$(KUzwqp&vh*FC5<9zM6cxZmI9DJ0OTF_jfDm zF*dv3%%xNlPk{mllq>x(^?J~Z;8O>7%mRAot>(CM6LdO1R&PBN_T>Jm2_7UKAGcvw&8^JbL?N$k3t_{K-}`KT1&fg z_q=P7K2|x6XuASZv#CSrR`Nlc9X6xAu8lucsqxhxO9&Va6VUV>i#JTEvnOP-c^2t+ z)Xp{gr9WfbX7*^&!-_?1({*h(ygRZmz&y)wZR`7+)_Z-`$w^T>SkS*=q(Hp{Vt*deE$4@%woRf zFTWollI69M7CV@~yq{BgzJrQw>*0Fm~IiY+p zb)QMk$5OL>>a-0~LvYQ*lV$J3&ic3AeQnv897Zu|CpwUuUzlA#NVbxjs>jfi6H2_U zmnpTaqp$5(h#-95T)xgk+fieGx3)i;gq+P&War*B2n3{z&8+r2@Q`gYEeb91rDpW- ze5=A3YsIB=o!TF*V5%>sk#T)R-I1fn`Fa5ns6c^4iBgocxzP*;Q2BN-mXzM=S9PzU z$^T?|jrAe#O?gU&2SW%uW|9X-zbX^A8a)&yrjT2l@#6iPL(xUY$3!Exu?S0u|AevB z9oB?qrii}^dHRB&1aTwXN3gqjL8h=8*d^ua@c@ld3d){e~Vs=$=q3oHf9_| zx`hf>%Kn06!<^uri6UA4?Ix{CtSw^{O-Jyf;n))8N9PA;8kv!0^v-&HSP zy{M!KB?~yOpo`W!<%pO{S#^6^U$y>OH(tOy!Rh1Smg!Ykr29gWCFF?`H(s9iDDwN| zrO8SOlm6)_qvL74jBC&-+R-vPUpRu46Gx1uPeH}E6s)4uKkeA^7F zR})eQC)8fxN_)r$Z%`BdwfK^WNN{X2(d|CEa5~$)_J_)N%E^sQ!{*`S`~V+#KM!9k z#r3u&8&02z=R(;aC8)$E4HiOBs70}%sOkoz>J2y-xv9%l#e=ir>NH$?N32}>jcfQp zrR-IvRP8EmzBD8D^k*#J??VrjR#hY?a~;sqaiG!G@!L=7ch z1|#48Jd`D=bQm5SQf=%Q*3E8OZ$J2@FAxeYP%5e#x=pXDJ5GwU4iT|u%vsf7P@7Kl4frO{oi24fo#vOV}g$etA3_mH21KS+@r5j@VffQ={+Z#C z2kG<_Qg`~@{Abgk25$1yFz&*_504d<``Tvzn0@^Obkero@)_68lWiHva)O5kP7NPt zRG_lwez1|zhLCjU9=;VBCY?h_^B{zE&K9u%QHS}_*+EtUvqz!W-rY#P2zJ<|0q7x2 zx~)e2<{>JOHP{^lY9QjX2d{5>b^HW9A`wBQRRHDFRs|8-Iw&S0dRFA|$IlZ~2 z&3I^WDO*I6v+P1YVW~Z# z(GM7Z0dU1(;vL5H%OLwXUL#8C1J5LOp&LI3g)ypZAuqp)6Ge9JXIS(i86a}Ya(dGn zwivfEYx)^5v>M63p53^IwgD1SXA4 zy2z+hnlLoHy4uR>Pa%VHYx=b^hfGaOgWj@)2Nq8i$`d>L5Il9t4TzD>zWNdsO_dw$ zv(Kepj&`m-a;nlhoS3UcF13xqkB! z>cf&PWMX0)IqlH<;N^X9#P>ot$w85&`@ZAx2SK_5DLyMbZ2HISPR4Us48crUcoo~o*2UhR!pT^;MMfq=L7o$}tLwoGpw)Fs zQLqM%C}MYR^`FR4XfZowXzHyKb=Wav^yRBPcg3ke=uF-`Zw{n=W@QBmKT?H%s$>uZ zc}CeEVj^DD1gf7r;>`4gzS?cgoG&k9#C=Y@b;=xF7IMa5eNVbH7bRMQk){S{ADa?M z#h^VLx%a_b*cR>=ykX%Rz32WQv+IEKlJhBh2QIyPk5Z3TCtqNca)OyYQ_^t$4m7;~ z{IciPbm*<-8ptF}uU6R{%L#7lcOQ5=@8V|McSrj3noRNYc){GQN|VWIO@?TS-EbS{ z*(cOV7LEqSkqks?q9-VEOhgG{5qTzLB}OIlHVE|R4UCDSNi(;V4+HL zz282^RsA4I*c&KIXpZ;~XA;s9TTzE(-*v6#!h+E*?EF5?RN@V5nD(E+oMeONp`RI@ za_rL#R=&>WRr@?GOse|2pSt&2oaJO|hGGbW;W@vc0{ivY$Fo$nsWYd% zOQ^LHaoOJZ%0pv)B_IroI;NL6XAow7&y&ZS1eLv15ThT7i1pxIRq*2hU0u@sQXe&< zxlzU7XH9>|+T@%C4zOo;koLSbXP@ zEggU}Fjf0guU3l*DemYe-H_g%2;0YN(96qp^>nJHZ@c_v%*BNdM2zC2@+(J^H{Y_L zr#5nNhnd5VlYI#PT-3}YTYBxke7#SIP0W2-iHlmIVLfeBvkGysRgj^naDLcUtxvbV zAhwi&1fS_XuKWHMyn_hB<0l{2`bQ5XA|r2zl^*szd2tfA=xbTI<|9dU5)KK&$fHcF zGpeOM;?UQg+)1dL=?I)_OZJOF0)>vMsl+xBzM-!}d_^XV*vtKHFLt4fL$ufPtMV$y z#D$@av5tx!Hu8dBSrSIpz(=hamsDiZRq2b*Ni~3zE^H>yxvYGVeNv%n;s6e~zY~rq zbHC$hhz#$vtKU!}8qH2%4I@}QFphoDS5tSudG zRgw1+A%_3ieIMuhLmX_L!x4F2^dnP(cOVsEpCl$ewl9Uu2fVZ5MsL42f3PtHHLXV1 z$8lauPygxNy5Y zo@!qAyA@eX@a#n!n^2WSG&kpAsYAvCH@%1+vnJ4u=I`g=ib*8fqMY63m~RrbtcRm=99k-y{l8qDk)>Z%o-Ra^Mn*(zDjrNT^g&CAbIhK(k95mzOQ55JEV{VyQZ(ULm z5*?iUP>u9X`(tW5eHF1qZdn{uv%U9iN?Dj;<$TWC=IDaw*J{Fs|PH`!F(?d^De zg^1xi(bGFjT7Zk8|}0Fy&Oh83 zu&VWauK@>2p!!ej7`mgXrYD*s!C-jSda*5Tt2f@E0gsUjJ&xG7_mHtNNkz&b!ledE z2y8o5;rI+={7inXcWC|ku!rX0ypT;p6!~PvdWvz?Z~(EZn~{4Y(}UR6LN#uCv&iB! z=Eh&}oboM+`Q2op<**pG?bQVWC`MccX zOp8C1)KFx95 zxLD`FqNRusfSz#U~Eyk&sl0^BWfdAJ6>mf2?z{Q5_tbckW zryQXpPU<(WvAJI!x1~}zVi?DOnyECER4mzZ<-}5&x*qfc7Ndl#`};UP=l@{gp&~VgWq|mr070M5x-s| zMmm9yMaSFH+a7-joP@r{7_Ulh_4i>%sKGImpfn(%!j&2CV0@p2VqelgmIvX%iqyB& z4Y34SO_DM*=ls8oP4>4LS~mYV3kO0gyeE=Z_}}$hgBm}eCE#^Lc$u=Pix9!WhG^{B zv&jqKa>t8J-{ZyuJWJKTjD5OD=3PP6!+uB<_IvPf!`9QT1^N$vu=7u-`HB|@!h;=Y z+7Bjqi+2CG5~d9*EZR}B8-4n$q=g9jg%F|(*80@!O9nxzR1C6Kgv>va{6(xNkpN}A zRpU(_?@&TVg%;1|;O3dtJeWYYxCDzL*3hA!%uXG`F%mo~RAp9mVfYsws!ux5Jr7D+ zQ)6puKboRRFE+*WqyaX(p;o?+ zmxo|pB>W>k_K3gavPqv9vVIr4&jIQ}fMVj{XdXp-KeEmd1;j_{8M^V~$JoHb+|k`A z%)5EZ5#-h5W;lV)x4=MUoIhxOH?{&!q_Mx5b!t?O1lE{K%ioU|1$W>es2e}phmr;> z>-xQ4NlrtqjN~Y#J+jbJ@UWIUX=rA+&{QUCnJOJXg!7Oy6x!Er(_zs=jb~<-O&mGF zWn$+X;BFUvA{jnIx^-dcvCUaws>@5LV-sXy(Xir1uobli&TII2>^@|O;O9xtv)+qp zN#j|w9@sCuwCha_I9%%J>}W;&8$Pl z4A{zx5(rrYI3hkopPLh>Ma=?Va9aGr8)g^h^89$5Pail>pIa*e0^Rl}903V&UAaqg zY3K0=DEk+V!*p?ZD3l2+AK4VsesESQnGP#llLKWM82hq1ze4i@xOQM$$#^>6P2zr*MgUp}O0C!+UJmDz^W5_2fi<~_^NG^{HIF>&6^qL7|>e6vh(XFnIl7OdLNHA z&`TP{N>mj;a`P%39<}kQg};vQK$~t441#Ko@fn2BgH4dIFjBn96J#&jOs#PUhq}>= zu?N9BXMnW;EnjSMS2oxSr?2j%8l>*W@?k?88`XcZ;fe?&y~WMPpHkY^e^S>k_`B!J z>#K&m#fLe-4;vT|1c=vRM1GE`-nUL)RV%ip{+yt|Jxgzsp z>{W^0vLB3RFId2LbC-5g&u;?z8zH&O#_}{@jBAJ{qtp$68Dv#Ge|$&O+4wBxb&Q zF1OQN&(E^}kcCj4A4;Qtbc3I~-RW})4xf^C#^)KqZF*Fhhtuj;-!B>4XCIzN+TGr3 z@d|C+@vujh5vc7&o!TG|pHgAUjJNcr25MN5ECO!^Ge)JbzHG7d2-FnfOnF)LlC^A) zxj3(a0`08A9Lta8&8;j+L3)rxk22mYMl;s7W_c`3BWWTW5Vi5*Rc%-v2g33|G5PLq zl}^O<3vRUIO8f<t1B@2BL+JjUm6i|(qOr+y>_3W$jUIGb|;EL_TE{_%So<4T! zH`^ueap_OHbnJc^s+Y)efGHkus!yR-hs}TfG;?Rm3qyy(_OewSjrnq^(i8&a2NyEQn7J%Uz5v_6cV?h}(XM<7m-#Ck ztXdyK7QwZITqZDM6Mio$Yn{ey=vi=Ub~d(Ru;1xQ#bp6(An z1bXN}p@7>L7Q-#79y#hbf$4=^?7vDB#VL`daL(1mq&yA&mIhy_6B^lSz3D;m7%-0tO!Gge+;I!5_ z?oYu9L@tAbYj*Z|zH+d=FriF*J4er*H51(ScUgq$`@sR;Av-}(%MJpFojF4zRO3{g z03dzIq^}Mx3j_FcLAvHy7UO=N?O`x|I56(V6z>e09nIZl@_`$qMq-&bzez%&Mc z<%x0Qq!*+JuR3uDJW6r2@F~q0WyxfMi)PeI*!3(ZyV+eJbRv7#c9ZIaC`dPc06S7m zSl@OV5ME*iWwvv32i}{cNzGCDhh1L_==i z3O@$J_x44@PI-Z8Q@Zv${K@&T zoj&hR`&^bWmAT{*J?Hy}GFA;>U;9ZdM2*d#&Iu{=%vlh4+x^(JuP)LoZKk#zlRIAc z=~ZWwRZ~^l9SXw~-r(bxKJ)p%^O2Ssuo5XEqCA1Kw?KY%%PF{xf3{SXmS?eMcOr2)qK<2lOYgB|=#RSwn!=m=Qvx(L71 zuqwe=BmDw4C>sixKL9Fr0sVu^l&vbv3jkhwLB=gBe)x$-QxM#$jCO-xY3O`Fy7hN> zoGRP`01lz*&i9pK5j$g{>a73bjvh60_KyJEyMt=TdgwpLO23GvI0}soCe$4(iW%;} zD&PC_pRlVwfBv)g*9RXMc84dgSjq|59YmmWZ#0~U{Oz4;nEMZ&u;VStaOaLT#O|*B z2N?^luas!IBaOcmC5Z2EWc=T-dIj}TXv*a#FmJfknW)FsmiM~V27TFI*D$LQJl^bh z=y)VCHv5w?!H!WGIM-OO2~u&p)?(4a?}dj(!CsewieE84Gy@bD@k{x*)yWyIy zB=_fSP&kj#7aTZsqXqL3@ppK|&Gxm@C9U9g(qE`^m8Jfym)kAT=cC_Zmiezn2YNMQ=u%4+bwX4Rd>i*W ze&|kh?jt+b6B(o2^A@Cs59SPR`(mK?x|r|lj>K#e<#SZJbylJn*imB+PcIE&rZdu+ zW*0;9Ohy;Sef$q9-O?cPQlL~j+B^1Dv0mAGhw;NE%i@|-k}PQ$m+_(MyWTmU5KnZu z{Lt67S-oUyccS8~&Du*YQ|_m#q7B z=#yQWZ!w7}!2f>j^vc^dQ~s(v+=~k&(qggW;{}S<0M)$d@n^F<&*D`0ew_9-#~x2c z@+hCi|NMkG6tCFxuUBRNuFHAJtfaV9Gb+ZT-!k?_E^L`LyZcwWE@}N&-VB2rs$J>RXQQmu8Bh9;?@zC z9a^&iDSjK5wkdUQt`rXWCT=t3)&{jZ3&IB0*VxXpwLrm|jp4W&jC zc8zX(cpjfHCslXhQ#39r402_IB=xt2c2z>{GQ`*Y6*QX2ZJxDF+w7u?>yV{y=?<3v zHn($xe=`YBcl5ny-l&>OY@0w&!|v{7Q7xK;XnhZ_G+F6Mk*bF~s-4N-w~@3xl54g{ z@wueQHaB^mh6D9n65Du6RDT>tul~`B+BTu?t?~X(GVJL(|OvqJhFGP1%$sh9(f)1fzy8$}5cm{2&b9|6|hi zpNx&nnVA=l5?WH48D8sM8+a#@zr1|kti5cJbuX+&tkU&3>B)`{lV%)hH>RUE(AOA_ zHdOo)^*pCY)7t;bzj|og{D1xL=YN3s?*dRKk;17ORTTIYRwaC?!uO5<+Y2j2!IWm2 za{kwhO>`|FH|5Uy{yK0LpSXLh%Vn=-2lEE*rO#arHKp?;_1!_w?^Vwf0u%t$1vu2* zcFJ5~Oky#%e<9eU`z62Vv9=gCT0(%e5GnT=>9tA1P35@=5C{2)c!oTSR^uIh%V(Cc z0UB&j&gKh$9kJ_u476dY4;pNc`zar!(%=(l6ve=sM^oHgPhK`urlZiYKiS6H1XMp~ zmZvE@tl)7oi@k7KMfHW?N74`ey&n#+gL?7Q@2r&J`k1rhaDC3CKKw7n&V-<2vUH&4 zm=bMo4)2OH6@=nvn1SNbSTjXH_);t5CC#08`TZ)fo_?fGUF$CmkLI4B7lPy&sa>>6 z8=U?Jeg)lwa!rk+=&ln}(~K8)P;ko3grwC<*J$!yAjTWzzN*|2b2d=5O;OTO=7Bcq z$zCOqKWMWWM-)xoP<_wqk8iU26Mmjy%n^EAOdx$q7MTguT@Q_25E9V6pmIio)yF>H z%d1}Np7*~=!NqjcAz0Na+lOqx6oNcbo8`hLFH5_EMXK;ReO-g6>0pO*)6+XNu`Y6gs!^UH>}@e><}{RpLJU z|3IpTqZ;}uPR~|+ar@&UM44+}j zDqlyEi4#WXGY@u}eAXG}$O~^?Ue&ZZCV|u*%U z9xEHjRGJ_|R;C9cp{&63jAG-iPW(C#btKOH9Tg1z6C1jQ=m%HNXnr69&l43n^;jeY zIS_{LU|IPpx{NSX^SP916a=8(fl>`M=5PZTL5Y@VBRSz?{-;{~O zU|^7}BO?m=zgZ8tsut!CFRmW~9Iwroi5F!|iVW8d)daFmJQn%0S0WT#{d8T diff --git a/WebServer/Images/Icons/style-01/task-manager.png b/WebServer/Images/Icons/style-01/task-manager.png index 109d16159bd57806848b52f0079199e6c286ee0c..1dbb5fd4e840723b22b583dad762306acfc4c301 100644 GIT binary patch literal 4956 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 literal 4924 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 kYimi-wf-sF-)hD&;L~ @@ -12,19 +13,19 @@ {% if include.icon != "no" %} -{% if include.table == "y" %} +{% if include.table == "yes" and include.icon != "no" %}
{% endif %} -{% if include.table == "y" %} +{% if include.table == "yes" and include.icon != "no" %} {% endif %} {% endif %} -{% if include.definition != "regular" %} +{% if include.definition == "bold" %} {{ definition }} @@ -34,25 +35,35 @@ {% endif %} -{% if include.table == "y" and include.icon != "no" %} +{% if include.table == "yes" and include.icon != "no" %}
{% endif %} -{% if include.content != "n" %} +{% if include.more == "yes" and include.content == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.content != "no" %} The basse asset must reference an asset in a specific market of a specific exchange in the Crypto Ecosystem hierarchy. - + {% endif %} +{% if include.more == "yes" and include.content != "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + {% if include.adding != "" %} {{include.adding}} Adding {{preposition}} {{title}} - + To add a parameter that may be missing, select *Add Missing Params* on the parameters node menu. @@ -89,3 +100,6 @@ Select *Configure Base Asset* on the menu to access the configuration. {% endif %} +{% if include.more == "yes" %} +
+{% endif %} \ No newline at end of file diff --git a/docs/_includes/trading_system/close-stage.md b/docs/_includes/trading_system/close-stage.md index b8568f4ed..9c3d40eb0 100644 --- a/docs/_includes/trading_system/close-stage.md +++ b/docs/_includes/trading_system/close-stage.md @@ -3,8 +3,9 @@ {% assign title = "Close Stage" %} {% assign definition = site.data.trading_system.close_stage %} {% assign preposition = "the" %} +{% assign plural = "s" %} - + {% if include.heading != "" %} {{include.heading}} {{title}} @@ -12,19 +13,19 @@ {% if include.icon != "no" %} -{% if include.table == "y" %} +{% if include.table == "yes" and include.icon != "no" %}
{% endif %} -{% if include.table == "y" %} +{% if include.table == "yes" and include.icon != "no" %} {% endif %} {% endif %} -{% if include.definition != "regular" %} +{% if include.definition == "bold" %} {{ definition }} @@ -34,27 +35,37 @@ {% endif %} -{% if include.table == "y" and include.icon != "no" %} +{% if include.table == "yes" and include.icon != "no" %}
{% endif %} -{% if include.content != "n" %} +{% if include.more == "yes" and include.content == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} - +{% if include.content != "no" %} + + As explained earlier while discussing the open stage, the execution functionality is currently under development. Needless to say, execution of the closing orders is of the highest significance, but in the meantime some temporal execution limitations apply. Also pending development is the keeping of a formal trading log. The current functionality allows you to see each trade on the screen, along with all the corresponding details, as well as a consolidated report on the live trading panel. This information is stored as a data product, thus, it is not lost. In the future, the system should incorporate a user-friendly feature to browse such logs, and even help analyze them in search for potential optimizations of your trading systems. - + {% endif %} +{% if include.more == "yes" and include.content != "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + {% if include.adding != "" %} {{include.adding}} Adding {{preposition}} {{title}} - + To add a close stage node, select *Add Missing Stages* on the strategy node menu. All stages that may be missing are created along with the rest of the basic structure of nodes required to define each of them and their events. @@ -84,6 +95,10 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - + +{% endif %} + +{% if include.more == "yes" %} +
{% endif %} \ No newline at end of file diff --git a/docs/_includes/trading_system/condition.md b/docs/_includes/trading_system/condition.md index 923fbc569..f9534f178 100644 --- a/docs/_includes/trading_system/condition.md +++ b/docs/_includes/trading_system/condition.md @@ -3,8 +3,9 @@ {% assign title = "Condition" %} {% assign definition = site.data.trading_system.condition %} {% assign preposition = "a" %} +{% assign plural = "s" %} - + {% if include.heading != "" %} {{include.heading}} {{title}} @@ -12,19 +13,19 @@ {% if include.icon != "no" %} -{% if include.table == "y" %} +{% if include.table == "yes" and include.icon != "no" %}
{% endif %} -{% if include.table == "y" %} +{% if include.table == "yes" and include.icon != "no" %} {% endif %} {% endif %} -{% if include.definition != "regular" %} +{% if include.definition == "bold" %} {{ definition }} @@ -34,13 +35,18 @@ {% endif %} -{% if include.table == "y" and include.icon != "no" %} +{% if include.table == "yes" and include.icon != "no" %}
{% endif %} -{% if include.content != "n" %} +{% if include.more == "yes" and include.content == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} - +{% if include.content != "no" %} + + Therefore, conditions are used to mathematically describe what needs to happen with the market for a certain action to be taken. @@ -56,15 +62,20 @@ In the example above, conditions A and B are comparison statements that may eval {% include note.html content="To learn how to write conditions, start with the Syntax Overview." %} - + {% endif %} +{% if include.more == "yes" and include.content != "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + {% if include.adding != "" %} {{include.adding}} Adding {{preposition}} {{title}} - + To add a condition, select *Add Condition* on the corresponding situation node menu. A condition with its JavaScript code node is added. @@ -92,6 +103,10 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - + +{% endif %} + +{% if include.more == "yes" %} +
{% endif %} \ No newline at end of file diff --git a/docs/_includes/trading_system/fee-structure.md b/docs/_includes/trading_system/fee-structure.md index 2b9a2028d..12da5ea22 100644 --- a/docs/_includes/trading_system/fee-structure.md +++ b/docs/_includes/trading_system/fee-structure.md @@ -3,8 +3,9 @@ {% assign title = "Fee Structure" %} {% assign definition = site.data.trading_system.fee_structure %} {% assign preposition = "a" %} +{% assign plural = "s" %} - + {% if include.heading != "" %} {{include.heading}} {{title}} @@ -12,19 +13,19 @@ {% if include.icon != "no" %} -{% if include.table == "y" %} +{% if include.table == "yes" and include.icon != "no" %}
{% endif %} -{% if include.table == "y" %} +{% if include.table == "yes" and include.icon != "no" %} {% endif %} {% endif %} -{% if include.definition != "regular" %} +{% if include.definition == "bold" %} {{ definition }} @@ -34,13 +35,18 @@ {% endif %} -{% if include.table == "y" and include.icon != "no" %} +{% if include.table == "yes" and include.icon != "no" %}
{% endif %} -{% if include.content != "n" %} +{% if include.more == "yes" and include.content == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} - +{% if include.content != "no" %} + + Exchange fees are a crucial part of trading. A strategy may work like a charm when you leave fees out of the equation but would lead you to bankruptcy in a live trading situation. @@ -54,15 +60,20 @@ The trade hits the take profit target above the Position Rate level, however, du In the context of forward testing and live trading sessions, the fee structure assumptions do not affect actual transactions. However, the parameter is taken into account when creating simulation layers, which are also available during forward testing and live trading. - + {% endif %} +{% if include.more == "yes" and include.content != "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + {% if include.adding != "" %} {{include.adding}} Adding {{preposition}} {{title}} - + To add a parameter that may be missing, select *Add Missing Params* on the parameters node menu. @@ -95,7 +106,22 @@ Select *Configure Fee Structure* on the menu to access the configuration. {% include important.html content="Remember that, for the time being, and until the new execution engine is released, all orders placed by the trading bot are *market orders*, thus, the *taker* fee applies in all cases." %} - + {% endif %} +{% if include.starting != "" %} + +{{include.starting}} Starting {{preposition}} {{title}} + + + +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + + + +{% endif %} + +{% if include.more == "yes" %} +
+{% endif %} \ No newline at end of file diff --git a/docs/_includes/trading_system/formula.md b/docs/_includes/trading_system/formula.md index 21cdb034f..4b971e903 100644 --- a/docs/_includes/trading_system/formula.md +++ b/docs/_includes/trading_system/formula.md @@ -3,8 +3,9 @@ {% assign title = "Formula" %} {% assign definition = site.data.trading_system.formula %} {% assign preposition = "a" %} +{% assign plural = "s" %} - + {% if include.heading != "" %} {{include.heading}} {{title}} @@ -12,19 +13,19 @@ {% if include.icon != "no" %} -{% if include.table == "y" %} +{% if include.table == "yes" and include.icon != "no" %}
{% endif %} -{% if include.table == "y" %} +{% if include.table == "yes" and include.icon != "no" %} {% endif %} {% endif %} -{% if include.definition != "regular" %} +{% if include.definition == "bold" %} {{ definition }} @@ -34,13 +35,18 @@ {% endif %} -{% if include.table == "y" and include.icon != "no" %} +{% if include.table == "yes" and include.icon != "no" %}
{% endif %} -{% if include.content != "n" %} +{% if include.more == "yes" and include.content == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} - +{% if include.content != "no" %} + + In the context of a trading system, formulas are used to determine the values for stopLoss, takeProfit, positionRate and positionSize. @@ -52,15 +58,20 @@ Formulas may use [internal variables](suite-internal-variables.html) made availa {% include note.html content="To learn which variables may be used in formulas, see the page about internal variables." %} - + {% endif %} +{% if include.more == "yes" and include.content != "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + {% if include.adding != "" %} {{include.adding}} Adding {{preposition}} {{title}} - + To add a formula, select *Add Formula* on the corresponding parent node menu. @@ -76,7 +87,7 @@ To add a formula, select *Add Formula* on the corresponding parent node menu. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - + {% endif %} @@ -84,10 +95,14 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX {{include.starting}} Starting {{preposition}} {{title}} - + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - + +{% endif %} + +{% if include.more == "yes" %} +
{% endif %} \ No newline at end of file diff --git a/docs/_includes/trading_system/initial-stop.md b/docs/_includes/trading_system/initial-stop.md index cd7321679..81aadbfc5 100644 --- a/docs/_includes/trading_system/initial-stop.md +++ b/docs/_includes/trading_system/initial-stop.md @@ -3,8 +3,9 @@ {% assign title = "Initial Stop" %} {% assign definition = site.data.trading_system.initial_stop %} {% assign preposition = "the" %} +{% assign plural = "s" %} - + {% if include.heading != "" %} {{include.heading}} {{title}} @@ -12,19 +13,19 @@ {% if include.icon != "no" %} -{% if include.table == "y" %} +{% if include.table == "yes" and include.icon != "no" %}
{% endif %} -{% if include.table == "y" %} +{% if include.table == "yes" and include.icon != "no" %} {% endif %} {% endif %} -{% if include.definition != "regular" %} +{% if include.definition == "bold" %} {{ definition }} @@ -34,13 +35,18 @@ {% endif %} -{% if include.table == "y" and include.icon != "no" %} +{% if include.table == "yes" and include.icon != "no" %}
{% endif %} -{% if include.content != "n" %} +{% if include.more == "yes" and include.content == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} - +{% if include.content != "no" %} + + Notice that the setting of the stop target has no relation to the execution of orders. The stop is a target, not an order to be placed. That is, the system does not place stop orders. @@ -50,15 +56,20 @@ Instead, the trading bot instance monitors the market, and only once the stop ta The initial target is set in phase 0, that is, the departing point for the management of the trade to be handled in the manage stage. - + {% endif %} +{% if include.more == "yes" and include.content != "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + {% if include.adding != "" %} {{include.adding}} Adding {{preposition}} {{title}} - + To add an initial stop node, select *Add Missing Items* on the initial definitions node menu. All items that may be missing are created along with the rest of the basic structure of nodes required to define each of them. @@ -74,7 +85,7 @@ To add an initial stop node, select *Add Missing Items* on the initial definitio XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - + {% endif %} @@ -82,10 +93,14 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX {{include.starting}} Starting {{preposition}} {{title}} - + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - + +{% endif %} + +{% if include.more == "yes" %} +
{% endif %} \ No newline at end of file diff --git a/docs/_includes/trading_system/initial-take-profit.md b/docs/_includes/trading_system/initial-take-profit.md index 6b4bf0c12..1dd6c12f7 100644 --- a/docs/_includes/trading_system/initial-take-profit.md +++ b/docs/_includes/trading_system/initial-take-profit.md @@ -3,8 +3,9 @@ {% assign title = "Initial Take Profit" %} {% assign definition = site.data.trading_system.initial_take_profit %} {% assign preposition = "the" %} +{% assign plural = "s" %} - + {% if include.heading != "" %} {{include.heading}} {{title}} @@ -12,19 +13,19 @@ {% if include.icon != "no" %} -{% if include.table == "y" %} +{% if include.table == "yes" and include.icon != "no" %}
{% endif %} -{% if include.table == "y" %} +{% if include.table == "yes" and include.icon != "no" %} {% endif %} {% endif %} -{% if include.definition != "regular" %} +{% if include.definition == "bold" %} {{ definition }} @@ -34,27 +35,37 @@ {% endif %} -{% if include.table == "y" and include.icon != "no" %} +{% if include.table == "yes" and include.icon != "no" %}
{% endif %} -{% if include.content != "n" %} +{% if include.more == "yes" and include.content == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} - +{% if include.content != "no" %} + + Pretty much like with the initial stop, the initial take profit is a target, and not an order to be placed. Only when the trading bot instance detects that the target has been hit does it place an order to close the trade. The initial target is set in phase 0, which may shift to the following phase once the corresponding next phase event is validated. - + {% endif %} +{% if include.more == "yes" and include.content != "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + {% if include.adding != "" %} {{include.adding}} Adding {{preposition}} {{title}} - + To add an initial take-profit node, select *Add Missing Items* on the initial definitions node menu. All items that may be missing are created along with the rest of the basic structure of nodes required to define each of them. @@ -70,7 +81,7 @@ To add an initial take-profit node, select *Add Missing Items* on the initial de XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - + {% endif %} @@ -78,10 +89,14 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX {{include.starting}} Starting {{preposition}} {{title}} - + XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - + +{% endif %} + +{% if include.more == "yes" %} +
{% endif %} \ No newline at end of file diff --git a/docs/_includes/trading_system/manage-stage.md b/docs/_includes/trading_system/manage-stage.md index 5ec813d40..15990f2ba 100644 --- a/docs/_includes/trading_system/manage-stage.md +++ b/docs/_includes/trading_system/manage-stage.md @@ -3,8 +3,9 @@ {% assign title = "Manage Stage" %} {% assign definition = site.data.trading_system.manage_stage %} {% assign preposition = "the" %} +{% assign plural = "s" %} - + {% if include.heading != "" %} {{include.heading}} {{title}} @@ -12,19 +13,19 @@ {% if include.icon != "no" %} -{% if include.table == "y" %} +{% if include.table == "yes" and include.icon != "no" %}
{% endif %} -{% if include.table == "y" %} +{% if include.table == "yes" and include.icon != "no" %} {% endif %} {% endif %} -{% if include.definition != "regular" %} +{% if include.definition == "bold" %} {{ definition }} @@ -34,13 +35,18 @@ {% endif %} -{% if include.table == "y" and include.icon != "no" %} +{% if include.table == "yes" and include.icon != "no" %}
{% endif %} -{% if include.content != "n" %} +{% if include.more == "yes" and include.content == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} - +{% if include.content != "no" %} + + The management of a trade aims to increase the efficiency of your trading system. Conceptually, a trade is not an instant event, but an event which has an opening, a period of maturation, and a closing. The management of the trade happens in that period of maturation. @@ -56,15 +62,20 @@ The idea of having different phases comes from the notion that big market moves All of these considerations should feed the dynamic analysis performed as the trade develops, and may be contrasted with the predefined conditions that may push take profit or stop further, entering one phase after the next. - + {% endif %} +{% if include.more == "yes" and include.content != "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + {% if include.adding != "" %} {{include.adding}} Adding {{preposition}} {{title}} - + To add a manage stage node, select *Add Missing Stages* on the strategy node menu. All stages that may be missing are created along with the rest of the basic structure of nodes required to define each of them and their events. @@ -82,6 +93,22 @@ To add a manage stage node, select *Add Missing Stages* on the strategy node men XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - + +{% endif %} + +{% if include.starting != "" %} + +{{include.starting}} Starting {{preposition}} {{title}} + + + +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + + + +{% endif %} + +{% if include.more == "yes" %} +
{% endif %} \ No newline at end of file diff --git a/docs/_includes/trading_system/open-stage.md b/docs/_includes/trading_system/open-stage.md index 6b69e4981..62cd21890 100644 --- a/docs/_includes/trading_system/open-stage.md +++ b/docs/_includes/trading_system/open-stage.md @@ -3,8 +3,9 @@ {% assign title = "Open Stage" %} {% assign definition = site.data.trading_system.open_stage %} {% assign preposition = "the" %} +{% assign plural = "s" %} - + {% if include.heading != "" %} {{include.heading}} {{title}} @@ -12,19 +13,19 @@ {% if include.icon != "no" %} -{% if include.table == "y" %} +{% if include.table == "yes" and include.icon != "no" %}
{% endif %} -{% if include.table == "y" %} +{% if include.table == "yes" and include.icon != "no" %} {% endif %} {% endif %} -{% if include.definition != "regular" %} +{% if include.definition == "bold" %} {{ definition }} @@ -34,13 +35,18 @@ {% endif %} -{% if include.table == "y" and include.icon != "no" %} +{% if include.table == "yes" and include.icon != "no" %}
{% endif %} -{% if include.content != "n" %} +{% if include.more == "yes" and include.content == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} - +{% if include.content != "no" %} + + Conceptually, the open stage deals with the details that concern the opening of a trade once the decision to take a position has been made. In this stage, you deal with the aforementioned parameters, each of which is defined by a formula. @@ -48,15 +54,20 @@ Ideally, the open stage would also handle the parameters that define the executi {% include note.html content="Learn more about the temporal execution limitations." %} - + {% endif %} +{% if include.more == "yes" and include.content != "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + {% if include.adding != "" %} {{include.adding}} Adding {{preposition}} {{title}} - + To add an open stage node, select *Add Missing Stages* on the strategy node menu. All stages that may be missing are created along with the rest of the basic structure of nodes required to define each of them and their events. @@ -74,6 +85,22 @@ To add an open stage node, select *Add Missing Stages* on the strategy node menu XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - + +{% endif %} + +{% if include.starting != "" %} + +{{include.starting}} Starting {{preposition}} {{title}} + + + +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + + + +{% endif %} + +{% if include.more == "yes" %} +
{% endif %} \ No newline at end of file diff --git a/docs/_includes/trading_system/parameters.md b/docs/_includes/trading_system/parameters.md index 75eb3e9a8..984af83f6 100644 --- a/docs/_includes/trading_system/parameters.md +++ b/docs/_includes/trading_system/parameters.md @@ -3,8 +3,9 @@ {% assign title = "Parameters" %} {% assign definition = site.data.trading_system.parameters %} {% assign preposition = "" %} +{% assign plural = "" %} - + {% if include.heading != "" %} {{include.heading}} {{title}} @@ -12,19 +13,19 @@ {% if include.icon != "no" %} -{% if include.table == "y" %} +{% if include.table == "yes" and include.icon != "no" %}
{% endif %} -{% if include.table == "y" %} +{% if include.table == "yes" and include.icon != "no" %} {% endif %} {% endif %} -{% if include.definition != "regular" %} +{% if include.definition == "bold" %} {{ definition }} @@ -34,25 +35,35 @@ {% endif %} -{% if include.table == "y" and include.icon != "no" %} +{% if include.table == "yes" and include.icon != "no" %}
{% endif %} -{% if include.content != "n" %} +{% if include.more == "yes" and include.content == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} - +{% if include.content != "no" %} + + Each testing session has its own set of parameters. This allows you to configure different trading sessions with different parameters, and go back and forth between them as required. For instance, you may have different backtesting sessions with different date ranges, different exchange fees or different slippage settings. - + {% endif %} +{% if include.more == "yes" and include.content != "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + {% if include.adding != "" %} {{include.adding}} Adding {{preposition}} {{title}} - + To add a parameters node, select *Add Parameters* on the session or the trading system menu, depending on the context. When a parameters node is added, the full set of parameters are created with it. @@ -70,7 +81,23 @@ If you already have a parameters node but are missing some of the parameters, th XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - + {% endif %} +{% if include.starting != "" %} + +{{include.starting}} Starting {{preposition}} {{title}} + + + +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + + + +{% endif %} + +{% if include.more == "yes" %} +
+{% endif %} + diff --git a/docs/_includes/trading_system/position-rate.md b/docs/_includes/trading_system/position-rate.md index 06c89ba07..da2c9593a 100644 --- a/docs/_includes/trading_system/position-rate.md +++ b/docs/_includes/trading_system/position-rate.md @@ -3,8 +3,10 @@ {% assign title = "Position Rate" %} {% assign definition = site.data.trading_system.position_rate %} {% assign preposition = "the" %} +{% assign plural = "s" %} - + + {% if include.heading != "" %} {{include.heading}} {{title}} @@ -12,19 +14,19 @@ {% if include.icon != "no" %} -{% if include.table == "y" %} +{% if include.table == "yes" and include.icon != "no" %}
{% endif %} -{% if include.table == "y" %} +{% if include.table == "yes" and include.icon != "no" %} {% endif %} {% endif %} -{% if include.definition != "regular" %} +{% if include.definition == "bold" %} {{ definition }} @@ -34,25 +36,35 @@ {% endif %} -{% if include.table == "y" and include.icon != "no" %} +{% if include.table == "yes" and include.icon != "no" %}
{% endif %} -{% if include.content != "n" %} +{% if include.more == "yes" and include.content == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} - +{% if include.content != "no" %} + + However, for the time being, the formula is overridden by the system as execution is currently limited to market orders until a more robust execution system is deployed. Therefore, the position rate is currently taken from the closing value of the last candle. - + {% endif %} +{% if include.more == "yes" and include.content != "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + {% if include.adding != "" %} {{include.adding}} Adding {{preposition}} {{title}} - + To add a position rate node, select *Add Missing Items* on the initial definitions node menu. All items that may be missing are created along with the rest of the basic structure of nodes required to define each of them. @@ -68,6 +80,22 @@ To add a position rate node, select *Add Missing Items* on the initial definitio XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - + +{% endif %} + +{% if include.starting != "" %} + +{{include.starting}} Starting {{preposition}} {{title}} + + + +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + + + +{% endif %} + +{% if include.more == "yes" %} +
{% endif %} \ No newline at end of file diff --git a/docs/_includes/trading_system/position-size.md b/docs/_includes/trading_system/position-size.md index f466f3aa1..ed3d96de7 100644 --- a/docs/_includes/trading_system/position-size.md +++ b/docs/_includes/trading_system/position-size.md @@ -3,8 +3,9 @@ {% assign title = "Position Size" %} {% assign definition = site.data.trading_system.position_size %} {% assign preposition = "the" %} +{% assign plural = "s" %} - + {% if include.heading != "" %} {{include.heading}} {{title}} @@ -12,19 +13,19 @@ {% if include.icon != "no" %} -{% if include.table == "y" %} +{% if include.table == "yes" and include.icon != "no" %}
{% endif %} -{% if include.table == "y" %} +{% if include.table == "yes" and include.icon != "no" %} {% endif %} {% endif %} -{% if include.definition != "regular" %} +{% if include.definition == "bold" %} {{ definition }} @@ -34,25 +35,35 @@ {% endif %} -{% if include.table == "y" and include.icon != "no" %} +{% if include.table == "yes" and include.icon != "no" %}
{% endif %} -{% if include.content != "n" %} +{% if include.more == "yes" and include.content == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} - +{% if include.content != "no" %} + + - + {% endif %} +{% if include.more == "yes" and include.content != "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + {% if include.adding != "" %} {{include.adding}} Adding {{preposition}} {{title}} - + To add a position size node, select *Add Missing Items* on the initial definitions node menu. All items that may be missing are created along with the rest of the basic structure of nodes required to define each of them. @@ -68,6 +79,22 @@ To add a position size node, select *Add Missing Items* on the initial definitio XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - + +{% endif %} + +{% if include.starting != "" %} + +{{include.starting}} Starting {{preposition}} {{title}} + + + +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + + + +{% endif %} + +{% if include.more == "yes" %} +
{% endif %} \ No newline at end of file diff --git a/docs/_includes/trading_system/quoted-asset.md b/docs/_includes/trading_system/quoted-asset.md index 552c0a88c..a58d32fb8 100644 --- a/docs/_includes/trading_system/quoted-asset.md +++ b/docs/_includes/trading_system/quoted-asset.md @@ -3,8 +3,9 @@ {% assign title = "Quoted Asset" %} {% assign definition = site.data.trading_system.quoted_asset %} {% assign preposition = "a" %} +{% assign plural = "s" %} - + {% if include.heading != "" %} {{include.heading}} {{title}} @@ -12,19 +13,19 @@ {% if include.icon != "no" %} -{% if include.table == "y" %} +{% if include.table == "yes" and include.icon != "no" %}
{% endif %} -{% if include.table == "y" %} +{% if include.table == "yes" and include.icon != "no" %} {% endif %} {% endif %} -{% if include.definition != "regular" %} +{% if include.definition == "bold" %} {{ definition }} @@ -34,25 +35,35 @@ {% endif %} -{% if include.table == "y" and include.icon != "no" %} +{% if include.table == "yes" and include.icon != "no" %}
{% endif %} -{% if include.content != "n" %} +{% if include.more == "yes" and include.content == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} - +{% if include.content != "no" %} + + The quoted asset must reference the second asset in the same market of the same exchange as the reference established with the base asset. - + {% endif %} +{% if include.more == "yes" and include.content != "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + {% if include.adding != "" %} {{include.adding}} Adding {{preposition}} {{title}} - + To add a parameter that may be missing, select *Add Missing Params* on the parameters node menu. @@ -70,6 +81,22 @@ To add a parameter that may be missing, select *Add Missing Params* on the param XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - + +{% endif %} + +{% if include.starting != "" %} + +{{include.starting}} Starting {{preposition}} {{title}} + + + +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + + + +{% endif %} + +{% if include.more == "yes" %} +
{% endif %} \ No newline at end of file diff --git a/docs/_includes/trading_system/situation.md b/docs/_includes/trading_system/situation.md index 8af1dbedc..db3e3b671 100644 --- a/docs/_includes/trading_system/situation.md +++ b/docs/_includes/trading_system/situation.md @@ -3,8 +3,9 @@ {% assign title = "Situation" %} {% assign definition = site.data.trading_system.situation %} {% assign preposition = "a" %} +{% assign plural = "s" %} - + {% if include.heading != "" %} {{include.heading}} {{title}} @@ -12,19 +13,19 @@ {% if include.icon != "no" %} -{% if include.table == "y" %} +{% if include.table == "yes" and include.icon != "no" %}
{% endif %} -{% if include.table == "y" %} +{% if include.table == "yes" and include.icon != "no" %} {% endif %} {% endif %} -{% if include.definition != "regular" %} +{% if include.definition == "bold" %} {{ definition }} @@ -34,13 +35,18 @@ {% endif %} -{% if include.table == "y" and include.icon != "no" %} +{% if include.table == "yes" and include.icon != "no" %}
{% endif %} -{% if include.content != "n" %} +{% if include.more == "yes" and include.content == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} - +{% if include.content != "no" %} + + In other words, you define situations in which you wish a certain event to happen (*i.e.:* trigger on the strategy, take a position, etc.) and each situation is described as a set of conditions that need to be met for the event to be triggered. @@ -48,15 +54,20 @@ A situation gets validated when all conditions under it are true. An event may have more than one situation attached to it. In such a case, when any of the situations gets validated, it triggers the event. That is, events may be triggered in different circumstances, meaning that you are free to define different situations upon which the same event would be triggered. In such a case, when any of the situations evaluate true, then the event is triggered. - + {% endif %} +{% if include.more == "yes" and include.content != "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + {% if include.adding != "" %} {{include.adding}} Adding {{preposition}} {{title}} - + To add a situation, select *Add Situation* on the corresponding event node menu. A situation is added along with a condition and JavaScript code node. @@ -72,6 +83,22 @@ To add a situation, select *Add Situation* on the corresponding event node menu. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - + +{% endif %} + +{% if include.starting != "" %} + +{{include.starting}} Starting {{preposition}} {{title}} + + + +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + + + +{% endif %} + +{% if include.more == "yes" %} +
{% endif %} \ No newline at end of file diff --git a/docs/_includes/trading_system/slippage.md b/docs/_includes/trading_system/slippage.md index e2c44b857..9148f9f76 100644 --- a/docs/_includes/trading_system/slippage.md +++ b/docs/_includes/trading_system/slippage.md @@ -2,9 +2,10 @@ {% assign title = "Slippage" %} {% assign definition = site.data.trading_system.slippage %} -{% assign preposition = "a" %} +{% assign preposition = "" %} +{% assign plural = "" %} - + {% if include.heading != "" %} {{include.heading}} {{title}} @@ -12,19 +13,19 @@ {% if include.icon != "no" %} -{% if include.table == "y" %} +{% if include.table == "yes" and include.icon != "no" %}
{% endif %} -{% if include.table == "y" %} +{% if include.table == "yes" and include.icon != "no" %} {% endif %} {% endif %} -{% if include.definition != "regular" %} +{% if include.definition == "bold" %} {{ definition }} @@ -34,27 +35,37 @@ {% endif %} -{% if include.table == "y" and include.icon != "no" %} +{% if include.table == "yes" and include.icon != "no" %}
{% endif %} -{% if include.content != "n" %} +{% if include.more == "yes" and include.content == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} - +{% if include.content != "no" %} + + In the context of forward testing and live trading sessions, slippage does not affect the actual transactions. However, the parameter is taken into account when creating simulation layers, which are also available during forward testing and live trading. Slippage is factored both in the session reports and in the graphic representation of each trade provided by the simulation trades product of the trading bot. - + {% endif %} +{% if include.more == "yes" and include.content != "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + {% if include.adding != "" %} {{include.adding}} Adding {{preposition}} {{title}} - + To add a parameter that may be missing, select *Add Missing Params* on the parameters node menu. @@ -88,6 +99,22 @@ The number you enter is applied as a percentage of the price of the order and ad {% include note.html content="If the slippage parameter is left empty or detached both from your session and your trading system, slippage is not computed during simulations."%} - + +{% endif %} + +{% if include.starting != "" %} + +{{include.starting}} Starting {{preposition}} {{title}} + + + +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + + + +{% endif %} + +{% if include.more == "yes" %} +
{% endif %} \ No newline at end of file diff --git a/docs/_includes/trading_system/strategy.md b/docs/_includes/trading_system/strategy.md index 3ed7dbf7c..7176c65a9 100644 --- a/docs/_includes/trading_system/strategy.md +++ b/docs/_includes/trading_system/strategy.md @@ -3,8 +3,9 @@ {% assign title = "Strategy" %} {% assign definition = site.data.trading_system.strategy %} {% assign preposition = "a" %} +{% assign plural = "" %} - + {% if include.heading != "" %} {{include.heading}} {{title}} @@ -12,19 +13,19 @@ {% if include.icon != "no" %} -{% if include.table == "y" %} +{% if include.table == "yes" and include.icon != "no" %}
{% endif %} -{% if include.table == "y" %} +{% if include.table == "yes" and include.icon != "no" %} {% endif %} {% endif %} -{% if include.definition != "regular" %} +{% if include.definition == "bold" %} {{ definition }} @@ -34,13 +35,18 @@ {% endif %} -{% if include.table == "y" and include.icon != "no" %} +{% if include.table == "yes" and include.icon != "no" %}
{% endif %} -{% if include.content != "n" %} +{% if include.more == "yes" and include.content == "more" %} +
Click to learn more about strategies + +{% endif %} - +{% if include.content != "no" %} + + The definition of a strategy may be analyzed in three sections: @@ -63,15 +69,20 @@ Your investment plan or trading carrer may have any number of goals (*e.g.: accu The definition of strategy points to the concept of *a trade*. A trade is a process that exchanges the base asset for the quoted asset and that—after some time, as the trade develops and targets are hit—exchanges back the quoted asset for the base asset. The first and foremost rule of a trade is to preserve capital and its main goal is to increase it. - + {% endif %} +{% if include.more == "yes" and include.content != "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + {% if include.adding != "" %} {{include.adding}} Adding {{preposition}} {{title}} - + To add a strategy, select *Add Strategy* on the trading system node menu. The strategy node is created along with the rest of the basic structure of nodes required to define each of the strategy stages and their events. @@ -91,6 +102,22 @@ To add a strategy, select *Add Strategy* on the trading system node menu. The st XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - + +{% endif %} + +{% if include.starting != "" %} + +{{include.starting}} Starting {{preposition}} {{title}} + + + +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + + + +{% endif %} + +{% if include.more == "yes" %} +
{% endif %} \ No newline at end of file diff --git a/docs/_includes/trading_system/take-position-event.md b/docs/_includes/trading_system/take-position-event.md index f070d2dd1..cee4efedc 100644 --- a/docs/_includes/trading_system/take-position-event.md +++ b/docs/_includes/trading_system/take-position-event.md @@ -3,8 +3,9 @@ {% assign title = "Take Position Event" %} {% assign definition = site.data.trading_system.take_position_event %} {% assign preposition = "the" %} +{% assign plural = "s" %} - + {% if include.heading != "" %} {{include.heading}} {{title}} @@ -12,19 +13,19 @@ {% if include.icon != "no" %} -{% if include.table == "y" %} +{% if include.table == "yes" and include.icon != "no" %}
{% endif %} -{% if include.table == "y" %} +{% if include.table == "yes" and include.icon != "no" %} {% endif %} {% endif %} -{% if include.definition != "regular" %} +{% if include.definition == "bold" %} {{ definition }} @@ -34,13 +35,18 @@ {% endif %} -{% if include.table == "y" and include.icon != "no" %} +{% if include.table == "yes" and include.icon != "no" %}
{% endif %} -{% if include.content != "n" %} +{% if include.more == "yes" and include.content == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} - +{% if include.content != "no" %} + + The trigger-on event merely selects a strategy to be considered for trading under the current market situation. The actual decision to enter a position may require more specific conditions to be met. For that reason, the take position event is a separate entity from the trigger-on event. @@ -48,15 +54,20 @@ Therefore, the take position event is defined with its own set of situations and Once the take position event is triggered, the decision to take a position has been made and there is nothing else to consider in that regard. Therefore, the system shifts from the trigger stage to the open stage. - + {% endif %} +{% if include.more == "yes" and include.content != "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + {% if include.adding != "" %} {{include.adding}} Adding {{preposition}} {{title}} - + To add a take position event node, select *Add Missing Events* on the trigger stage node menu. All events that may be missing are created along with the rest of the basic structure of nodes required to define each of them. @@ -72,6 +83,22 @@ To add a take position event node, select *Add Missing Events* on the trigger st XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - + +{% endif %} + +{% if include.starting != "" %} + +{{include.starting}} Starting {{preposition}} {{title}} + + + +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + + + +{% endif %} + +{% if include.more == "yes" %} +
{% endif %} \ No newline at end of file diff --git a/docs/_includes/trading_system/template-sessions.md b/docs/_includes/trading_system/template-sessions.md index 9d0327426..94479e277 100644 --- a/docs/_includes/trading_system/template-sessions.md +++ b/docs/_includes/trading_system/template-sessions.md @@ -3,6 +3,7 @@ {% assign title = "XXXXXXXXXXXXXXXX" %} {% assign definition = site.data.network.XXXXXXXXXXXXXXXX %} {% assign preposition = "XXXXXXXXXXXXXXXX" %} +{% assign plural = "s" %} @@ -12,19 +13,19 @@ {% if include.icon != "no" %} -{% if include.table == "y" %} +{% if include.table == "yes" and include.icon != "no" %}
{% endif %} -{% if include.table == "y" %} +{% if include.table == "yes" and include.icon != "no" %} {% endif %} {% endif %} -{% if include.definition != "regular" %} +{% if include.definition == "bold" %} {{ definition }} @@ -34,11 +35,16 @@ {% endif %} -{% if include.table == "y" and include.icon != "no" %} +{% if include.table == "yes" and include.icon != "no" %}
{% endif %} -{% if include.content != "n" %} +{% if include.more == "yes" and include.content == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + +{% if include.content != "no" %} @@ -48,6 +54,11 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX {% endif %} +{% if include.more == "yes" and include.content != "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + {% if include.adding != "" %} {{include.adding}} Adding {{preposition}} {{title}} @@ -82,4 +93,8 @@ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX +{% endif %} + +{% if include.more == "yes" %} +
{% endif %} \ No newline at end of file diff --git a/docs/_includes/trading_system/time-frame.md b/docs/_includes/trading_system/time-frame.md index eb19e84a9..78d267d3c 100644 --- a/docs/_includes/trading_system/time-frame.md +++ b/docs/_includes/trading_system/time-frame.md @@ -3,8 +3,9 @@ {% assign title = "Time Frame" %} {% assign definition = site.data.trading_system.time_frame %} {% assign preposition = "a" %} +{% assign plural = "s" %} - + {% if include.heading != "" %} {{include.heading}} {{title}} @@ -12,19 +13,19 @@ {% if include.icon != "no" %} -{% if include.table == "y" %} +{% if include.table == "yes" and include.icon != "no" %}
{% endif %} -{% if include.table == "y" %} +{% if include.table == "yes" and include.icon != "no" %} {% endif %} {% endif %} -{% if include.definition != "regular" %} +{% if include.definition == "bold" %} {{ definition }} @@ -34,27 +35,37 @@ {% endif %} -{% if include.table == "y" and include.icon != "no" %} +{% if include.table == "yes" and include.icon != "no" %}
{% endif %} -{% if include.content != "n" %} +{% if include.more == "yes" and include.content == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} - +{% if include.content != "no" %} + + In the context of backtesting sessions, what time frame you decide to run the session on depends on the strategies being tested. If strategies make decisions based on the 1 hour candle and above, then ```01-hs``` may be the best choice. However, if decisions are influenced by sub-hour candles then you should match the time frame accordingly. In the context of live sessions, that is, paper trading, forward testing and live trading, you should run the session on the ```01-min``` time frame so that the trading bot reacts fast when the price tags the take profit or stop loss targets. - + {% endif %} +{% if include.more == "yes" and include.content != "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + {% if include.adding != "" %} {{include.adding}} Adding {{preposition}} {{title}} - + To add a parameter that may be missing, select *Add Missing Params* on the parameters node menu. @@ -106,7 +117,23 @@ Available options at larger time frames are: 24-hs ``` - + {% endif %} +{% if include.starting != "" %} + +{{include.starting}} Starting {{preposition}} {{title}} + + + +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + + + +{% endif %} + +{% if include.more == "yes" %} +
+{% endif %} + diff --git a/docs/_includes/trading_system/time-range.md b/docs/_includes/trading_system/time-range.md index 83efd935a..6f24a3f30 100644 --- a/docs/_includes/trading_system/time-range.md +++ b/docs/_includes/trading_system/time-range.md @@ -3,8 +3,9 @@ {% assign title = "Time Range" %} {% assign definition = site.data.trading_system.time_range %} {% assign preposition = "a" %} +{% assign plural = "s" %} - + {% if include.heading != "" %} {{include.heading}} {{title}} @@ -12,19 +13,19 @@ {% if include.icon != "no" %} -{% if include.table == "y" %} +{% if include.table == "yes" and include.icon != "no" %}
{% endif %} -{% if include.table == "y" %} +{% if include.table == "yes" and include.icon != "no" %} {% endif %} {% endif %} -{% if include.definition != "regular" %} +{% if include.definition == "bold" %} {{ definition }} @@ -34,25 +35,35 @@ {% endif %} -{% if include.table == "y" and include.icon != "no" %} +{% if include.table == "yes" and include.icon != "no" %}
{% endif %} -{% if include.content != "n" %} +{% if include.more == "yes" and include.content == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} - +{% if include.content != "no" %} + + - + {% endif %} +{% if include.more == "yes" and include.content != "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + {% if include.adding != "" %} {{include.adding}} Adding {{preposition}} {{title}} - + To add a parameter that may be missing, select *Add Missing Params* on the parameters node menu. @@ -93,6 +104,22 @@ These sessions always start at the datetime the session is run, therefore, there * ```finalDatetime``` is the datetime the session finishes at. If you don't set a *finalDatetime* at the level of the testing session or the trading system, then the session runs for one year. - + +{% endif %} + +{% if include.starting != "" %} + +{{include.starting}} Starting {{preposition}} {{title}} + + + +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + + + +{% endif %} + +{% if include.more == "yes" %} +
{% endif %} \ No newline at end of file diff --git a/docs/_includes/trading_system/trading-system.md b/docs/_includes/trading_system/trading-system.md index 4300a23cf..2916849c7 100644 --- a/docs/_includes/trading_system/trading-system.md +++ b/docs/_includes/trading_system/trading-system.md @@ -3,8 +3,9 @@ {% assign title = "Trading System" %} {% assign definition = site.data.trading_system.trading_system %} {% assign preposition = "a" %} +{% assign plural = "s" %} - + {% if include.heading != "" %} {{include.heading}} {{title}} @@ -12,19 +13,19 @@ {% if include.icon != "no" %} -{% if include.table == "y" %} +{% if include.table == "yes" and include.icon != "no" %}
{% endif %} -{% if include.table == "y" %} +{% if include.table == "yes" and include.icon != "no" %} {% endif %} {% endif %} -{% if include.definition != "regular" %} +{% if include.definition == "bold" %} {{ definition }} @@ -34,13 +35,18 @@ {% endif %} -{% if include.table == "y" and include.icon != "no" %} +{% if include.table == "yes" and include.icon != "no" %}
{% endif %} -{% if include.content != "n" %} +{% if include.more == "yes" and include.content == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} - +{% if include.content != "no" %} + + In practical terms, a trading system is a hierarchical arrangement organizing the actionable aspects of your investment plan. The hierarchy contains definitions regarding any number of trading strategies, all sharing the same market, the same base asset, and the same initial capital. @@ -48,15 +54,20 @@ You use a trading system to define strategies following the trading framework im The concept of describing strategies in phases is fundamental to the methodical aspect of the trading system, as it provides a framework to run every strategy with the same logic, which contributes to developing scalable trading systems that may grow to any number of strategies. - + {% endif %} +{% if include.more == "yes" and include.content != "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + {% if include.adding != "" %} {{include.adding}} Adding {{preposition}} {{title}} - + To add a trading system, select *Add Trading System* on the workspace node menu. @@ -74,6 +85,22 @@ To add a trading system, select *Add Trading System* on the workspace node menu. XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - + +{% endif %} + +{% if include.starting != "" %} + +{{include.starting}} Starting {{preposition}} {{title}} + + + +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + + + +{% endif %} + +{% if include.more == "yes" %} +
{% endif %} \ No newline at end of file diff --git a/docs/_includes/trading_system/trigger-off-event.md b/docs/_includes/trading_system/trigger-off-event.md index 8bbc29f5d..f293b427a 100644 --- a/docs/_includes/trading_system/trigger-off-event.md +++ b/docs/_includes/trading_system/trigger-off-event.md @@ -3,8 +3,9 @@ {% assign title = "Trigger-Off Event" %} {% assign definition = site.data.trading_system.trigger-off_event %} {% assign preposition = "the" %} +{% assign plural = "s" %} - + {% if include.heading != "" %} {{include.heading}} {{title}} @@ -12,19 +13,19 @@ {% if include.icon != "no" %} -{% if include.table == "y" %} +{% if include.table == "yes" and include.icon != "no" %}
{% endif %} -{% if include.table == "y" %} +{% if include.table == "yes" and include.icon != "no" %} {% endif %} {% endif %} -{% if include.definition != "regular" %} +{% if include.definition == "bold" %} {{ definition }} @@ -34,13 +35,18 @@ {% endif %} -{% if include.table == "y" and include.icon != "no" %} +{% if include.table == "yes" and include.icon != "no" %}
{% endif %} -{% if include.content != "n" %} +{% if include.more == "yes" and include.content == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} - +{% if include.content != "no" %} + + In conceptual terms, the trigger-off event is the mechanism you use to define the situation in which the corresponding strategy should stop considering the trading opportunity signaled by the trigger-on event. That is, you use the trigger off event to describe the scenario for the invalidation of the trading idea behind the strategy. @@ -48,15 +54,20 @@ Once a strategy is triggered-on, only two possible scenarios may follow. Either In the first scenario, the strategy remains *on* until the trade is closed. As the trade is closed, the strategy is triggered-off. In the second scenario, the strategy is triggered-off immediately. - + {% endif %} +{% if include.more == "yes" and include.content != "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + {% if include.adding != "" %} {{include.adding}} Adding {{preposition}} {{title}} - + To add a trigger-off event node, select *Add Missing Events* on the trigger stage node menu. All events that may be missing are created along with the rest of the basic structure of nodes required to define each of them. @@ -72,6 +83,22 @@ To add a trigger-off event node, select *Add Missing Events* on the trigger stag XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - + +{% endif %} + +{% if include.starting != "" %} + +{{include.starting}} Starting {{preposition}} {{title}} + + + +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + + + +{% endif %} + +{% if include.more == "yes" %} +
{% endif %} \ No newline at end of file diff --git a/docs/_includes/trading_system/trigger-on-event.md b/docs/_includes/trading_system/trigger-on-event.md index afad87b91..636ba2860 100644 --- a/docs/_includes/trading_system/trigger-on-event.md +++ b/docs/_includes/trading_system/trigger-on-event.md @@ -3,8 +3,9 @@ {% assign title = "Trigger-On Event" %} {% assign definition = site.data.trading_system.trigger-on_event %} {% assign preposition = "the" %} +{% assign plural = "s" %} - + {% if include.heading != "" %} {{include.heading}} {{title}} @@ -12,19 +13,19 @@ {% if include.icon != "no" %} -{% if include.table == "y" %} +{% if include.table == "yes" and include.icon != "no" %}
{% endif %} -{% if include.table == "y" %} +{% if include.table == "yes" and include.icon != "no" %} {% endif %} {% endif %} -{% if include.definition != "regular" %} +{% if include.definition == "bold" %} {{ definition }} @@ -34,27 +35,37 @@ {% endif %} -{% if include.table == "y" and include.icon != "no" %} +{% if include.table == "yes" and include.icon != "no" %}
{% endif %} -{% if include.content != "n" %} +{% if include.more == "yes" and include.content == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} - +{% if include.content != "no" %} + + In conceptual terms, the trigger-on event is the mechanism you use to define the specific situations in which you would consider trading with the corresponding strategy. Think of the trigger-on event as the definition of the scenario in which the trading idea behind the strategy should be carefully considered. Once a strategy is triggered-on, the system starts evaluating the take position event. In conceptual terms, it means that the system has been alerted that the trading idea behind the corresponding trading strategy has produced a signal and that it should carefully monitor the market for the opportunity to take a position. - + {% endif %} +{% if include.more == "yes" and include.content != "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + {% if include.adding != "" %} {{include.adding}} Adding {{preposition}} {{title}} - + To add a trigger-on event node, select *Add Missing Events* on the trigger stage node menu. All events that may be missing are created along with the rest of the basic structure of nodes required to define each of them. @@ -70,6 +81,22 @@ To add a trigger-on event node, select *Add Missing Events* on the trigger stage XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - + +{% endif %} + +{% if include.starting != "" %} + +{{include.starting}} Starting {{preposition}} {{title}} + + + +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + + + +{% endif %} + +{% if include.more == "yes" %} +
{% endif %} \ No newline at end of file diff --git a/docs/_includes/trading_system/trigger-stage.md b/docs/_includes/trading_system/trigger-stage.md index c705ea442..a6894b48b 100644 --- a/docs/_includes/trading_system/trigger-stage.md +++ b/docs/_includes/trading_system/trigger-stage.md @@ -3,8 +3,9 @@ {% assign title = "Trigger Stage" %} {% assign definition = site.data.trading_system.trigger_stage %} {% assign preposition = "a" %} +{% assign plural = "s" %} - + {% if include.heading != "" %} {{include.heading}} {{title}} @@ -12,19 +13,19 @@ {% if include.icon != "no" %} -{% if include.table == "y" %} +{% if include.table == "yes" and include.icon != "no" %}
{% endif %} -{% if include.table == "y" %} +{% if include.table == "yes" and include.icon != "no" %} {% endif %} {% endif %} -{% if include.definition != "regular" %} +{% if include.definition == "bold" %} {{ definition }} @@ -34,13 +35,18 @@ {% endif %} -{% if include.table == "y" and include.icon != "no" %} +{% if include.table == "yes" and include.icon != "no" %}
{% endif %} -{% if include.content != "n" %} +{% if include.more == "yes" and include.content == "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} - +{% if include.content != "no" %} + + A trading system may have multiple strategies designed for the same market, with the same base asset. @@ -52,15 +58,20 @@ The triggering-on of a strategy effectively blocks the selection of any other st As a corollary, if certain strategies are meant to trade under the same market situations and open trades concurrently, then those strategies should be put in separate trading systems. - + {% endif %} +{% if include.more == "yes" and include.content != "more" %} +
Click to learn more about {{ title | downcase }}{{plural}} + +{% endif %} + {% if include.adding != "" %} {{include.adding}} Adding {{preposition}} {{title}} - + To add a trigger stage node, select *Add Missing Stages* on the strategy node menu. All stages that may be missing are created along with the rest of the basic structure of nodes required to define each of them and their events. @@ -78,6 +89,22 @@ To add a trigger stage node, select *Add Missing Stages* on the strategy node me XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX - + +{% endif %} + +{% if include.starting != "" %} + +{{include.starting}} Starting {{preposition}} {{title}} + + + +XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX + + + +{% endif %} + +{% if include.more == "yes" %} +
{% endif %} \ No newline at end of file diff --git a/docs/css/customstyles.css b/docs/css/customstyles.css index f4db5c841..0f132c3ff 100644 --- a/docs/css/customstyles.css +++ b/docs/css/customstyles.css @@ -19,6 +19,14 @@ p { margin: 15px 0 15px 0; } +.nobr { + color: #0295aa; +} + +.nobr p { + margin: -25px 0 0 20px; +} + .bs-callout { padding: 20px; margin: 20px 0; @@ -240,7 +248,7 @@ ul#results-container a:hover { color: black; } #search-input { - padding: .5em; + padding: 0.2em .5em; margin-left:20px; width:20em; font-size: 0.8em; @@ -676,10 +684,10 @@ a.fa.fa-envelope-o.mailto { h2 {font-weight:700; font-size:170%; margin-top: 60px; padding-bottom: 5px;} h3 {font-weight:500; font-size:150%; margin-top: 30px;} -h4 {font-weight:400; font-size:140%;} -h5 {font-weight:400; font-size:130%; font-style:italic;} -h6 {font-weight:400; font-size:120%; font-style:italic;} -h7 {font-weight:400; font-size:110%; font-style:italic;} +h4 {font-weight:400; font-size:140%; margin-top: 30px;} +h5 {font-weight:400; font-size:130%; margin-top: 30px; font-style:italic;} +h6 {font-weight:400; font-size:120%; margin-top: 30px; font-style:italic;} +h7 {font-weight:400; font-size:110%; margin-top: 30px; font-style:italic;} /* Line on main headings spanning across the screen */ diff --git a/docs/pages/suite/suite-defining-a-trading-strategy.md b/docs/pages/suite/suite-defining-a-trading-strategy.md index e0badcafd..8f6122637 100644 --- a/docs/pages/suite/suite-defining-a-trading-strategy.md +++ b/docs/pages/suite/suite-defining-a-trading-strategy.md @@ -5,26 +5,26 @@ sidebar: suite_sidebar permalink: suite-defining-a-trading-strategy.html --- -{% include /trading_system/strategy.md heading="" icon="150-" adding="" configuring="" starting="" content="" definition="" table="y" %} +{% include /trading_system/strategy.md heading="" icon="150-" adding="##" configuring="" starting="" content="yes" definition="bold" table="yes" more="yes"%} -{% include /trading_system/trigger-stage.md heading="##" icon="150-" adding="" configuring="" starting="" content="" definition="" table="y" %} +{% include /trading_system/trigger-stage.md heading="##" icon="150-" adding="" configuring="" starting="" content="yes" definition="bold" table="yes" more="no"%} -{% include /trading_system/trigger-on-event.md heading="###" icon="" adding="" configuring="" starting="" content="" definition="regular" table="y" %} +{% include /trading_system/trigger-on-event.md heading="###" icon="" adding="" configuring="" starting="" content="yes" definition="" table="yes" more="no"%} -{% include /trading_system/trigger-off-event.md heading="###" icon="" adding="" configuring="" starting="" content="" definition="regular" table="y" %} +{% include /trading_system/trigger-off-event.md heading="###" icon="" adding="" configuring="" starting="" content="yes" definition="" table="yes" more="no"%} -{% include /trading_system/take-position-event.md heading="###" icon="" adding="" configuring="" starting="" content="" definition="regular" table="y" %} +{% include /trading_system/take-position-event.md heading="###" icon="" adding="" configuring="" starting="" content="yes" definition="" table="yes" more="no"%} -{% include /trading_system/open-stage.md heading="##" icon="150-" adding="" configuring="" starting="" content="" definition="" table="y" %} +{% include /trading_system/open-stage.md heading="##" icon="150-" adding="" configuring="" starting="" content="yes" definition="bold" table="yes" more="no"%} -{% include /trading_system/initial-stop.md heading="###" icon="" adding="" configuring="" starting="" content="" definition="regular" table="y" %} +{% include /trading_system/initial-stop.md heading="###" icon="" adding="" configuring="" starting="" content="yes" definition="" table="yes" more="no"%} -{% include /trading_system/initial-take-profit.md heading="###" icon="" adding="" configuring="" starting="" content="" definition="regular" table="y" %} +{% include /trading_system/initial-take-profit.md heading="###" icon="" adding="" configuring="" starting="" content="yes" definition="" table="yes" more="no"%} -{% include /trading_system/position-size.md heading="###" icon="" adding="" configuring="" starting="" content="" definition="regular" table="y" %} +{% include /trading_system/position-size.md heading="###" icon="" adding="" configuring="" starting="" content="yes" definition="" table="yes" more="no"%} -{% include /trading_system/position-rate.md heading="###" icon="" adding="" configuring="" starting="" content="" definition="regular" table="y" %} +{% include /trading_system/position-rate.md heading="###" icon="" adding="" configuring="" starting="" content="yes" definition="" table="yes" more="no"%} -{% include /trading_system/manage-stage.md heading="##" icon="150-" adding="" configuring="" starting="" content="" definition="" table="y" %} +{% include /trading_system/manage-stage.md heading="##" icon="150-" adding="" configuring="" starting="" content="yes" definition="bold" table="yes" more="no"%} -{% include /trading_system/close-stage.md heading="##" icon="150-" adding="" configuring="" starting="" content="" definition="" table="y" %} \ No newline at end of file +{% include /trading_system/close-stage.md heading="##" icon="150-" adding="" configuring="" starting="" content="yes" definition="bold" table="yes" more="no"%} diff --git a/docs/pages/suite/suite-network-hierarchy.md b/docs/pages/suite/suite-network-hierarchy.md index da1878799..1c9d25afc 100644 --- a/docs/pages/suite/suite-network-hierarchy.md +++ b/docs/pages/suite/suite-network-hierarchy.md @@ -325,19 +325,19 @@ You do not start or stop a trading process instance directly. Instead, you start -{% include /trading_system/parameters.md heading="##" icon="150-" adding="###" configuring="" %} +{% include /trading_system/parameters.md heading="##" icon="150-" adding="###" configuring="" starting="" content="yes" definition="bold" table="yes" more="no"%} -{% include /trading_system/base-asset.md heading="##" icon="150-" adding="###" configuring="###" %} +{% include /trading_system/base-asset.md heading="##" icon="150-" adding="###" configuring="###" starting="" content="yes" definition="bold" table="yes" more="no"%} -{% include /trading_system/quoted-asset.md heading="##" icon="150-" adding="###" configuring="" %} +{% include /trading_system/quoted-asset.md heading="##" icon="150-" adding="###" configuring="" starting="" content="yes" definition="bold" table="yes" more="no"%} -{% include /trading_system/time-frame.md heading="##" icon="150-" adding="###" configuring="###" %} +{% include /trading_system/time-frame.md heading="##" icon="150-" adding="###" configuring="###" starting="" content="yes" definition="bold" table="yes" more="no"%} -{% include /trading_system/time-range.md heading="##" icon="150-" adding="###" configuring="###" %} +{% include /trading_system/time-range.md heading="##" icon="150-" adding="###" configuring="###" starting="" content="yes" definition="bold" table="yes" more="no"%} -{% include /trading_system/slippage.md heading="##" icon="150-" adding="###" configuring="###" %} +{% include /trading_system/slippage.md heading="##" icon="150-" adding="###" configuring="###" starting="" content="yes" definition="bold" table="yes" more="no"%} -{% include /trading_system/fee-structure.md heading="##" icon="150-" adding="###" configuring="###" %} +{% include /trading_system/fee-structure.md heading="##" icon="150-" adding="###" configuring="###" starting="" content="yes" definition="bold" table="yes" more="no"%} diff --git a/docs/pages/suite/suite-parameters.md b/docs/pages/suite/suite-parameters.md index 0e5d111c2..a41f5bbe9 100644 --- a/docs/pages/suite/suite-parameters.md +++ b/docs/pages/suite/suite-parameters.md @@ -1,18 +1,18 @@ --- title: Parameters -summary: "Strategies are defined in a sequence of stages." +summary: "Parameters control the behavior of trading sessions and improve the quality of simulations." sidebar: suite_sidebar permalink: suite-parameters.html --- -{% include /trading_system/parameters.md heading="" icon="150-" adding="" configuring="" starting="" content="" definition="" table="y" %} +{% include /trading_system/parameters.md heading="" icon="150-" adding="" configuring="" starting="" content="yes" definition="bold" table="yes" more="no"%} -{% include /trading_system/base-asset.md heading="###" icon="" adding="" configuring="" starting="" content="" definition="regular" table="y" %} +{% include /trading_system/base-asset.md heading="##" icon="" adding="####" configuring="####" starting="" content="yes" definition="" table="yes" more="yes"%} -{% include /trading_system/quoted-asset.md heading="###" icon="" adding="" configuring="" starting="" content="" definition="regular" table="y" %} +{% include /trading_system/quoted-asset.md heading="##" icon="" adding="####" configuring="" starting="" content="yes" definition="" table="yes" more="yes"%} -{% include /trading_system/time-frame.md heading="###" icon="" adding="" configuring="" starting="" content="" definition="regular" table="y" %} +{% include /trading_system/time-frame.md heading="##" icon="" adding="" configuring="####" starting="" content="yes" definition="" table="yes" more="yes"%} -{% include /trading_system/slippage.md heading="###" icon="" adding="" configuring="" starting="" content="" definition="regular" table="y" %} +{% include /trading_system/slippage.md heading="##" icon="" adding="" configuring="####" starting="" content="yes" definition="" table="yes" more="yes"%} -{% include /trading_system/fee-structure.md heading="###" icon="" adding="" configuring="" starting="" content="" definition="regular" table="y" %} +{% include /trading_system/fee-structure.md heading="##" icon="" adding="" configuring="####" starting="" content="yes" definition="" table="yes" more="yes"%} diff --git a/docs/pages/suite/suite-trading-system-hierarchy.md b/docs/pages/suite/suite-trading-system-hierarchy.md index 0dee5ae73..9975fa311 100644 --- a/docs/pages/suite/suite-trading-system-hierarchy.md +++ b/docs/pages/suite/suite-trading-system-hierarchy.md @@ -955,38 +955,37 @@ toc: false +{% include /trading_system/trading-system.md heading="##" icon="150-" adding="###" configuring="" starting="" content="yes" definition="bold" table="yes" more="no"%} -{% include /trading_system/trading-system.md heading="##" icon="150-" adding="###" configuring="" %} +{% include /trading_system/parameters.md heading="##" icon="150-" adding="###" configuring="" starting="" content="yes" definition="bold" table="yes" more="no"%} -{% include /trading_system/parameters.md heading="##" icon="150-" adding="###" configuring="" %} +{% include /trading_system/base-asset.md heading="##" icon="150-" adding="###" configuring="###" starting="" content="yes" definition="bold" table="yes" more="no"%} -{% include /trading_system/base-asset.md heading="##" icon="150-" adding="###" configuring="###" %} +{% include /trading_system/quoted-asset.md heading="##" icon="150-" adding="###" configuring="" starting="" content="yes" definition="bold" table="yes" more="no"%} -{% include /trading_system/quoted-asset.md heading="##" icon="150-" adding="###" configuring="" %} +{% include /trading_system/time-frame.md heading="##" icon="150-" adding="###" configuring="###" starting="" content="yes" definition="bold" table="yes" more="no"%} -{% include /trading_system/time-frame.md heading="##" icon="150-" adding="###" configuring="###" %} +{% include /trading_system/time-range.md heading="##" icon="150-" adding="###" configuring="###" starting="" content="yes" definition="bold" table="yes" more="no"%} -{% include /trading_system/time-range.md heading="##" icon="150-" adding="###" configuring="###" %} +{% include /trading_system/slippage.md heading="##" icon="150-" adding="###" configuring="###" starting="" content="yes" definition="bold" table="yes" more="no"%} -{% include /trading_system/slippage.md heading="##" icon="150-" adding="###" configuring="###" %} +{% include /trading_system/fee-structure.md heading="##" icon="150-" adding="###" configuring="###" starting="" content="yes" definition="bold" table="yes" more="no"%} -{% include /trading_system/fee-structure.md heading="##" icon="150-" adding="###" configuring="###" %} +{% include /trading_system/strategy.md heading="##" icon="150-" adding="###" configuring="" starting="" content="yes" definition="bold" table="yes" more="no"%} -{% include /trading_system/strategy.md heading="##" icon="150-" adding="###" configuring="" %} +{% include /trading_system/trigger-stage.md heading="##" icon="150-" adding="###" configuring="" starting="" content="yes" definition="bold" table="yes" more="no"%} -{% include /trading_system/trigger-stage.md heading="##" icon="150-" adding="###" configuring="" %} +{% include /trading_system/trigger-on-event.md heading="##" icon="150-" adding="###" configuring="" starting="" content="yes" definition="bold" table="yes" more="no"%} -{% include /trading_system/trigger-on-event.md heading="##" icon="150-" adding="###" configuring="" %} +{% include /trading_system/situation.md heading="##" icon="150-" adding="###" configuring="" starting="" content="yes" definition="bold" table="yes" more="no"%} -{% include /trading_system/situation.md heading="##" icon="150-" adding="###" configuring="" %} +{% include /trading_system/condition.md heading="##" icon="150-" adding="###" configuring="" starting="" content="yes" definition="bold" table="yes" more="no"%} -{% include /trading_system/condition.md heading="##" icon="150-" adding="###" configuring="" %} +{% include /trading_system/trigger-off-event.md heading="##" icon="150-" adding="###" configuring="" starting="" content="yes" definition="bold" table="yes" more="no"%} -{% include /trading_system/trigger-off-event.md heading="##" icon="150-" adding="###" configuring="" %} +{% include /trading_system/take-position-event.md heading="##" icon="150-" adding="###" configuring="" starting="" content="yes" definition="bold" table="yes" more="no"%} -{% include /trading_system/take-position-event.md heading="##" icon="150-" adding="###" configuring="" %} - -{% include /trading_system/open-stage.md heading="##" icon="150-" adding="###" configuring="" %} +{% include /trading_system/open-stage.md heading="##" icon="150-" adding="###" configuring="" starting="" content="yes" definition="bold" table="yes" more="no"%} @@ -1005,7 +1004,7 @@ To add an initial definition node, select *Add Initial Definition* on the open s -{% include /trading_system/initial-stop.md heading="##" icon="150-" adding="###" configuring="" %} +{% include /trading_system/initial-stop.md heading="##" icon="150-" adding="###" configuring="" starting="" content="yes" definition="bold" table="yes" more="no"%} @@ -1029,7 +1028,7 @@ To add the phase 0 node, select *Add Phase* on the initial definitions node menu -{% include /trading_system/formula.md heading="##" icon="150-" adding="###" configuring="" %} +{% include /trading_system/formula.md heading="##" icon="150-" adding="###" configuring="" starting="" content="yes" definition="bold" table="yes" more="no"%} @@ -1054,11 +1053,11 @@ To add a next phase event, select *Add Next Phase Event* on the corresponding ph -{% include /trading_system/initial-take-profit.md heading="##" icon="150-" adding="###" configuring="" %} +{% include /trading_system/initial-take-profit.md heading="##" icon="150-" adding="###" configuring="" starting="" content="yes" definition="bold" table="yes" more="no"%} -{% include /trading_system/position-size.md heading="##" icon="150-" adding="###" configuring="" %} +{% include /trading_system/position-size.md heading="##" icon="150-" adding="###" configuring="" starting="" content="yes" definition="bold" table="yes" more="no"%} -{% include /trading_system/position-rate.md heading="##" icon="150-" adding="###" configuring="" %} +{% include /trading_system/position-rate.md heading="##" icon="150-" adding="###" configuring="" starting="" content="yes" definition="bold" table="yes" more="no"%} @@ -1083,7 +1082,7 @@ To add an open execution node, select *Add Open Execution* on the open stage nod -{% include /trading_system/manage-stage.md heading="##" icon="150-" adding="###" configuring="" %} +{% include /trading_system/manage-stage.md heading="##" icon="150-" adding="###" configuring="" starting="" content="yes" definition="bold" table="yes" more="no"%} @@ -1141,7 +1140,7 @@ To add a take profit node, select *Add Missing Items* on the manage stage node m -{% include /trading_system/close-stage.md heading="##" icon="150-" adding="###" configuring="" %} +{% include /trading_system/close-stage.md heading="##" icon="150-" adding="###" configuring="" starting="" content="yes" definition="bold" table="yes" more="no"%}